Rigid Geometric Algebra rga_wiki https://rigidgeometricalgebra.org/wiki/index.php?title=Main_Page MediaWiki 1.40.0 first-letter Media Special Talk User User talk Rigid Geometric Algebra Rigid Geometric Algebra talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Main Page 0 1 1 2023-07-15T01:28:28Z MediaWiki default 2 wikitext text/x-wiki <strong>MediaWiki has been installed.</strong> Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki] 11cef88175cf81168a86e7c0327a5b2d7a1920f5 2 1 2023-07-15T05:23:23Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Interior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Commutators]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] cffc7180b98f856a771b3ba6da2fb31eaacbc2b5 File:Basis.svg 6 2 3 2023-07-15T05:24:03Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Motor 0 3 4 2023-07-15T05:27:08Z Eric Lengyel 1 Created page with "[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector..." wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles’ theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 1b308d97beb1f892531d10a33af37ca02a56afa2 File:Proper isom.svg 6 4 5 2023-07-15T05:27:33Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Attitude 0 5 6 2023-07-15T05:29:38Z Eric Lengyel 1 Created page with "The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as :$$\operatorname{att}(\mathbf x) = \mathbf x \vee \overline{\mathbf e_4}$$ . The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector. The following table lists the attitude for the main types in the 4D rigid geometric algebra..." wikitext text/x-wiki The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as :$$\operatorname{att}(\mathbf x) = \mathbf x \vee \overline{\mathbf e_4}$$ . The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector. The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Attitude |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ |} 9510730854e4bad2b527cc19847fdbea1e62f0f8 Bulk and weight 0 6 7 2023-07-15T05:31:09Z Eric Lengyel 1 Created page with "The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal..." wikitext text/x-wiki The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] 0a0a22918cb421f8a9e7342b3c08ca0b9dabb383 8 7 2023-07-15T05:33:25Z Eric Lengyel 1 wikitext text/x-wiki The components of an element of a rigid geometric algebra can be divided into two groups called the ''bulk'' and the ''weight'' of the element. The bulk of an element $$\mathbf x$$ is denoted by $$\mathbf x_\unicode{x25CF}$$, and it consists of the components of $$\mathbf x$$ that do not have the projective basis vector as a factor. The weight is denoted by $$\mathbf x_\unicode{x25CB}$$, and it consists of the components that do have the projective basis vector as a factor. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, the bulk is thus all components that do not contain the factor $$\mathbf e_4$$, and the weight is all components that do contain the factor $$\mathbf e_4$$. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] 4eb1453abc20d42b3252034d9a85043fd08ebbcb Line 0 7 9 2023-07-15T05:34:26Z Eric Lengyel 1 Created page with "[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ corr..." wikitext text/x-wiki [[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To possess the [[geometric property]], the components of $$\boldsymbol l$$ must satisfy the equation :$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ , which means that, when regarded as vectors, the direction and moment of a line are perpendicular. The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction. When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself. <br clear="right" /> == Lines at Infinity == [[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]] If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]]. When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$. <br clear="right" /> == Skew Lines == [[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]] Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line :$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$ and then orthogonalizing its direction and moment to obtain :$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ , where :$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ . If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$. The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function. <br clear="right" /> == See Also == * [[Point]] * [[Plane]] c1ae230e63c248675662980da21c7dc56ae3d419 File:Line.svg 6 8 10 2023-07-15T05:34:35Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line infinity.svg 6 9 11 2023-07-15T05:34:45Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Skew lines.svg 6 10 12 2023-07-15T05:34:58Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Join and meet 0 11 13 2023-07-15T05:38:56Z Eric Lengyel 1 Created page with "The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf..." wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Commutator || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | $$[\boldsymbol l, \mathbf p]^{\Large\unicode{x27D1}}_+$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$[\mathbf g, \mathbf h]^{\Large\unicode{x27C7}}_-$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_+$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_+$$ | style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$. | style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | $$-[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+$$ | style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$. | style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_-$$ | style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]] |} == See Also == * [[Exterior products]] * [[Commutators]] e1aa786b08a5979d11fd49e0590f8ea370cdee55 File:Point join point.svg 6 12 14 2023-07-15T05:39:12Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line join point.svg 6 13 15 2023-07-15T05:39:22Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Plane meet plane.svg 6 14 16 2023-07-15T05:39:32Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line meet plane.svg 6 15 17 2023-07-15T05:39:41Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Rigid Geometric Algebra for 2D Space 0 19 21 2023-07-15T05:46:01Z Eric Lengyel 1 Created page with "== Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_..." wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ :$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Commutator || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$ | style="padding: 12px;" | $$[\mathbf k, \boldsymbol l]^{\Large\unicode{x27C7}}_-$$ | style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect. Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel. |- | style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p = l_yp_z\mathbf e_{23} - l_xp_z\mathbf e_{31} + (l_xp_y - l_yp_x)\mathbf e_{12}$$ | style="padding: 12px;" | $$-[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+$$ | style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. |- | style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin. :$$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 8bfab698d804be94f9430281a2b7093deb67a186 File:Basis201.svg 6 20 22 2023-07-15T05:46:09Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Unary201.svg 6 21 23 2023-07-15T05:46:19Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricProduct201.svg 6 22 24 2023-07-15T05:46:34Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct201.svg 6 23 25 2023-07-15T05:46:44Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Magnitude 0 24 26 2023-07-15T05:50:33Z Eric Lengyel 1 Created page with "A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows: :$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one. ===..." wikitext text/x-wiki A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows: :$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one. === Examples === * The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator. * [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norms]] and [[weight norms]] of [[commutators]]. * Exponentiating the magnitude $$d\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$d/\phi$$ is the pitch of the screw transformation. == See Also == * [[Geometric norm]] * [[Unitization]] c8fcae29bb1a879b192c0764e7b91c565ad8c02a Transformation groups 0 25 27 2023-07-15T05:52:29Z Eric Lengyel 1 Created page with "In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_..." wikitext text/x-wiki In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ . Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$. Symmetrically, every dual Euclidean isometry of 3D space can be represented by a [[dual motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$ or by a [[dual flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ . Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the dual Euclidean group DE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$. The [[geometric product]] corresponds to transform composition in the group DE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[dual reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of DE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of DE(3). The groups E(''n'') and DE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and DE(''n''). The groups E(''n'') and DE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the dual Euclidean group DE(''n'') contains the dual special Euclidean subgroup DSE(''n'') consisting of all combinations of [[dual rotations]] and [[dual translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and DSE(''n'') further contain translation subgroups T(''n'') and DT(''n''), respectively. [[Image:Groups.svg|800px]] Transforms about invariants containing the origin are the same in both E(''n'') and DE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$. In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form :$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ , where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group DE(''n'') transforms points with matrices of the form :$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1 \end{bmatrix}$$ . In the special subgroups SE(''n'') and DSE(''n''), the submatrix $$\mathbf m$$ has a determinant of +1. In the translation subgroups T(''n'') and DT(''n''), $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, the two matrices above have the same form and belong to O(''n''). The isomorphic mapping between E(''n'') and DE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of DE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways. == See Also == * [[Motor]] * [[Flector]] a33aeb5318e5cb03319f71337843761476419818 File:Groups.svg 6 26 28 2023-07-15T05:52:36Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Transflection 0 27 29 2023-07-15T05:54:31Z Eric Lengyel 1 Created page with "A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane. The specific kind of [[flector]] :$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \math..." wikitext text/x-wiki A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane. The specific kind of [[flector]] :$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \mathbf e_{3} + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , in which $$F_{pw} = 0$$, performs a reflection through the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ and a translation by twice the displacement vector given by the cross product $$(F_{gx}, F_{gy}, F_{gz}) \times (F_{px}, F_{py}, F_{pz})$$. By the [[geometric property]], we must have $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} = 0$$, so the vector $$(F_{px}, F_{py}, F_{pz})$$ and the displacement vector are both parallel to the plane $$\mathbf g$$. == Calculation == The exact transflection calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x - 2F_{gx} F_{gy} q_y - 2F_{gz} F_{gx} q_z + 2(F_{gy} F_{pz} - F_{gz} F_{py} - F_{gx} F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y - 2F_{gy} F_{gz} q_z - 2F_{gx} F_{gy} q_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} - F_{gy} F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z - 2F_{gz} F_{gx} q_x - 2F_{gy} F_{gz} q_y + 2(F_{gx} F_{py} - F_{gy} F_{px} - F_{gz} F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2F_{gx} F_{gy} l_{vy} + 2 F_{gz} F_{gx} l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2F_{gy} F_{gz} l_{vz} + 2F_{gx} F_{gy} l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2F_{gz} F_{gx} l_{vx} + 2F_{gy} F_{gz} l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy} F_{py} + F_{gz} P_{pz})l_{vx} + 2(F_{gx} F_{py} + F_{gy} F_{px})l_{vy} + 2(F_{gx} F_{pz} + F_{gz} F_{px} + F_{gy} F_{gw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} - 2F_{gx} F_{gy} l_{my} - 2F_{gz} F_{gx} l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz} F_{pz} + F_{gx} F_{px})l_{vy} + 2(F_{gy} F_{pz} + F_{gz} F_{py})l_{vz} + 2(F_{gy} F_{px} + F_{gx} F_{py} + F_{gz} F_{gw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} - 2F_{gy} F_{gz} l_{mz} - 2F_{gx} F_{gy} l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx} F_{px} + F_{gy} F_{py})l_{vz} + 2(F_{gz} F_{px} + F_{gx} F_{pz})l_{vx} + 2(F_{gz} F_{py} + F_{gy} F_{pz} + F_{gx} F_{gw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} - 2F_{gz} F_{gx} l_{mx} - 2F_{gy} F_{gz} l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy} F_{pz} - F_{gz} F_{py} + F_{gx} F_{gw})h_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} + F_{gy} F_{gw})h_y + 2(F_{gx} F_{py} - F_{gy} F_{px} + F_{gz} F_{gw})h_z - h_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] 3426de30aaa1c185719d08ee7873349b44bccf5c Inversion 0 28 30 2023-07-15T05:55:49Z Eric Lengyel 1 Created page with "An ''inversion'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[point]] $$\mathbf F = F_{px}\mathbf e_1 + F_{py}\mathbf e_2 + F_{pz}\mathbf e_3 + \mathbf e_4$$ is a specific kind of [[flector]] that performs an inversion through $$\mathbf F$$. == Calculation == The exact inversion calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Inversion |-..." wikitext text/x-wiki An ''inversion'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[point]] $$\mathbf F = F_{px}\mathbf e_1 + F_{py}\mathbf e_2 + F_{pz}\mathbf e_3 + \mathbf e_4$$ is a specific kind of [[flector]] that performs an inversion through $$\mathbf F$$. == Calculation == The exact inversion calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Inversion |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = (2q_w F_{px} - q_x)\mathbf e_1 + (2q_w F_{py} - q_y)\mathbf e_2 + (2q_w F_{pz} - q_z)\mathbf e_3 + q_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (2F_{py} l_{vz} - 2F_{pz} l_{vy} - l_{mx})\mathbf e_{23} + (2F_{pz} l_{vx} - 2F_{px} l_{vz} - l_{my})\mathbf e_{31} + (2F_{px} l_{vy} - 2F_{py} l_{vx} - l_{mz})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} - (2F_{px} g_x + 2F_{py} g_y + 2F_{pz} g_z + g_w) \mathbf e_{321}$$ |} == See Also == * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Transflection]] 5cb188c3a01b5ee12e22608bb351bd66224c6e9a Reflection 0 29 31 2023-07-15T05:56:20Z Eric Lengyel 1 Created page with "A ''reflection'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[plane]] $$\mathbf F = F_{gx}\mathbf e_{423} + F_{gy}\mathbf e_{431} + F_{gz}\mathbf e_{412} + F_{gw}\mathbf e_{321}$$ is a specific kind of [[flector]] that performs a reflection through $$\mathbf F$$. == Calculation == The exact reflection calculations for points, lines, and planes are shown in the following table. {| class="wikitable"..." wikitext text/x-wiki A ''reflection'' is an improper isometry of Euclidean space. When used as an operator in the sandwich antiproduct, a [[unitized]] [[plane]] $$\mathbf F = F_{gx}\mathbf e_{423} + F_{gy}\mathbf e_{431} + F_{gz}\mathbf e_{412} + F_{gw}\mathbf e_{321}$$ is a specific kind of [[flector]] that performs a reflection through $$\mathbf F$$. == Calculation == The exact reflection calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reflection |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((2F_{gy}^2 + 2F_{gz}^2 - 1)p_x \,&-\, 2F_{gx} F_{gy} p_y \,&-\, 2F_{gz} F_{gx} p_z \,&-\, 2F_{gx} F_{gw} p_w)&\mathbf e_1 \\ +\, &((2F_{gz}^2 + 2F_{gx}^2 - 1)p_y \,&-\, 2F_{gy} F_{gz} p_z \,&-\, 2F_{gx} F_{gy} p_x \,&-\, 2F_{gy} F_{gw} p_w)&\mathbf e_2 \\ +\, &((2F_{gx}^2 + 2F_{gy}^2 - 1)p_z \,&-\, 2F_{gz} F_{gx} p_x \,&-\, 2F_{gy} F_{gz} p_y \,&-\, 2F_{gz} F_{gw} p_w)&\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} \,&-\, 2F_{gx} F_{gy} l_{vy} \,&+\, 2F_{gz} F_{gx} l_{vz})&\mathbf e_{41} \\ +\, &((1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} \,&-\, 2F_{gy} F_{gz} l_{vz} \,&+\, 2F_{gx} F_{gy} l_{vx})&\mathbf e_{42} \\ +\, &((1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} \,&-\, 2F_{gz} F_{gx} l_{vx} \,&+\, 2F_{gy} F_{gz} l_{vy})&\mathbf e_{43} \\ +\, &((2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} \,&-\, 2F_{gx} F_{gy} l_{my} \,&-\, 2F_{gz} F_{gx} l_{mz} \,&+\, 2F_{gw} F_{gy} l_{vz} \,&-\, 2F_{gw} F_{gz} l_{vy})&\mathbf e_{23} \\ +\, &((2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} \,&-\, 2F_{gy} F_{gz} l_{mz} \,&-\, 2F_{gx} F_{gy} l_{mx} \,&+\, 2F_{gw} F_{gz} l_{vx} \,&-\, 2F_{gw} F_{gx} l_{vz})&\mathbf e_{31} \\ +\, &((2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} \,&-\, 2F_{gz} F_{gx} l_{mx} \,&-\, 2F_{gy} F_{gz} l_{my} \,&+\, 2F_{gw} F_{gx} l_{vy} \,&-\, 2F_{gw} F_{gy} l_{vx})&\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &((1 - 2F_{gy}^2 - 2F_{gz}^2)h_x \,&+\, 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z)&\mathbf e_{423} \\ +\, &((1 - 2F_{gz}^2 - 2F_{gx}^2)h_y \,&+\, 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x)&\mathbf e_{431} \\ +\, &((1 - 2F_{gx}^2 - 2F_{gy}^2)h_z \,&+\, 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y)&\mathbf e_{412} \\ +\, &\rlap{(2F_{gx} F_{gw} h_x + 2F_{gy} F_{gw} h_y + 2F_{gz} F_{gw} h_z - h_w)\mathbf e_{321}}\end{split}$$ |} == See Also == * [[Translation]] * [[Rotation]] * [[Inversion]] * [[Transflection]] 531acdcfd7c5b5491bff138e6e66fa8650ddf3f6 Rotation 0 30 32 2023-07-15T05:57:00Z Eric Lengyel 1 Created page with "A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathb..." wikitext text/x-wiki A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its weight [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$. == Calculation == The exact rotation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Dual rotation]] * [[Translation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 1aa22df4b08559b06c46bf9bd4536f2fae77d59f Translation 0 31 33 2023-07-15T05:57:34Z Eric Lengyel 1 Created page with "__NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$. === Trans..." wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$. === Translation to Origin === A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . === Exponential Form === A direction vector $$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ is converted to a translation operator $$\mathbf T$$ through the exponential :$$\mathbf T = \overline{\exp_\unicode{x27D1}\left(\dfrac{1}{2}\mathbf v \wedge \mathbf e_4\right)} = \exp_\unicode{x27C7}{\left(\dfrac{1}{2}\overline{\mathbf v} \vee \mathbf e_{321}\right)}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Dual translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 918f2166ef73b73880e35a20add767df6c548eae File:Translation.svg 6 32 34 2023-07-15T05:58:42Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:DualTranslation.svg 6 33 35 2023-07-15T05:58:52Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Complement translation 0 34 36 2023-07-15T05:59:04Z Eric Lengyel 1 Created page with "__NOTOC__ A ''dual translation'' is a proper isometry of dual Euclidean space. The specific kind of [[dual motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $..." wikitext text/x-wiki __NOTOC__ A ''dual translation'' is a proper isometry of dual Euclidean space. The specific kind of [[dual motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the dual translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact dual translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Dual Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Dual Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is dual translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Dual rotation]] * [[Dual reflection]] f5dbfdf842b1ba98ed2fbe6ab60ccecb2f63c7be File:Rotation.svg 6 35 37 2023-07-15T05:59:38Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:DualRotation.svg 6 36 38 2023-07-15T05:59:48Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Complement rotation 0 37 39 2023-07-15T05:59:53Z Eric Lengyel 1 Created page with "A ''dual rotation'' is a proper isometry of dual Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]]..." wikitext text/x-wiki A ''dual rotation'' is a proper isometry of dual Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector. Under a dual rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix. == Example == The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the dual rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line. [[Image:Rotation.svg|480px]] [[Image:DualRotation.svg|480px]] == Calculation == The exact dual rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$ |} == See Also == * [[Rotation]] * [[Dual translation]] * [[Dual reflection]] 694f05e6b5d39b3a68fe24a9ba47ed50b9cc15b3 Geometric norm 0 38 40 2023-07-15T06:02:43Z Eric Lengyel 1 Created page with "The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf x$$, d..." wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf x$$ with its own [[reverse]]: :$$\left\Vert\mathbf x\right\Vert_\unicode{x25CF} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf x$$ with its own [[antireverse]]: :$$\left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct a ''geometric norm'' given by :$$\left\Vert\mathbf x\right\Vert = \left\Vert\mathbf x\right\Vert_\unicode{x25CF} + \left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}} + \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf x$$ is given by :$$\widehat{\left\Vert\mathbf x\right\Vert} = \dfrac{\left\Vert\mathbf x\right\Vert}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf x\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}}}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}\vphantom{\mathbf{\tilde x}}}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == See Also == * [[Geometric property]] 3b1fb145f24798fb94367a72caec426d3587c092 Unitization 0 39 41 2023-07-15T06:03:19Z Eric Lengyel 1 Created page with "''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf x$$ is unitized by calculating :$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\ma..." wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf x$$ is unitized by calculating :$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == See Also == * [[Geometric norm]] a0d9d2d7e1abaaf78f7eaeb7dd6babfbf61e897c Geometric constraint 0 40 42 2023-07-15T06:03:55Z Eric Lengyel 1 Created page with "An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf{\..." wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf{\tilde x}$$ and :$$\mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = \mathbf x \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$ . The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements&mdash;they all possess the geometric property. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] d8c2cafb828a6a9f9c4eaa27e91791b3b3054950 Complements 0 41 43 2023-07-15T06:04:43Z Eric Lengyel 1 Created page with "''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation :$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation :$$\underline{\mathbf x} \wedge \mathbf x = {\larg..." wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation :$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation :$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ . This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$ :$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|900px]] == Explicit Calculation == Left and right complements of the [[bulk and weight]] of an element $$\mathbf x$$ can be calculated by taking the geometric product and antiproduct with the antiscalar $$\large\unicode{x1D7D9}$$ and the scalar $$\mathbf 1$$, respectively, as follows. :$$\overline{\mathbf x_\smash{\unicode{x25CF}}} = \mathbf{\tilde x} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ :$$\underline{\mathbf x_\smash{\unicode{x25CF}}} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf x_\smash{\unicode{x25CB}}} = \mathbf 1 \mathbin{\unicode{x27C7}} \mathbf{\tilde x}$$ :$$\underline{\mathbf x_\smash{\unicode{x25CB}}} = \mathbf 1 \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$ The full complement of $$\mathbf x$$ is the sum of the complements of its bulk and weight, so we can write :$$\overline{\mathbf x} = \mathbf{\tilde x} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}} + \mathbf 1 \mathbin{\unicode{x27C7}} \mathbf{\tilde x}$$ :$$\underline{\mathbf x} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}} + \mathbf 1 \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$ . == Weight Complements == The complement of an element's weight is particularly useful because it extracts the attitude of a geometric object as an element expressed on an orthogonal basis. These arise naturally in [[projections]], which make use of the [[interior product]]. The following table lists the weight left complement for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Left Complement !! Description |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\underline{\mathbf p_\smash{\unicode{x25CB}}} = -p_w \mathbf e_{321}$$ | style="padding: 12px;" | Plane at infinity. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ | style="padding: 12px;" | Line at infinity perpendicular to line $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\underline{\mathbf g_\smash{\unicode{x25CB}}} = g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3$$ | style="padding: 12px;" | Normal vector, or point at infinity in direction perpendicular to plane $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw}$$ | style="padding: 12px;" | $$\underline{\mathbf Q_\smash{\unicode{x25CB}}} = -Q_{vx} \mathbf e_{23} - Q_{vy} \mathbf e_{31} - Q_{vz} \mathbf e_{12} + Q_{vw}$$ | style="padding: 12px;" | Conventional [[quaternion]] $$\mathbf q = Q_{vx} \mathbf i + Q_{vy} \mathbf j + Q_{vz} \mathbf k + Q_{vw} = (a_x \mathbf i + a_y \mathbf j + a_z \mathbf k)\sin\phi + \cos\phi$$, which is the 3D position-free counterpart of a [[motor]]. The sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\underline{\mathbf F_\smash{\unicode{x25CB}}} = F_{gx} \mathbf e_1 + F_{gy} \mathbf e_2 + F_{gz} \mathbf e_3 - F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | 3D position-free counterpart of a [[flector]] having the form $$\mathbf f = (a_x \mathbf e_1 + a_y \mathbf e_2 + a_z \mathbf e_3)\cos\phi + \mathbf e_{123}\sin\phi$$. The sandwich product $$-\mathbf f \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde f}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$ and reflects it along the direction of $$\mathbf a$$. |} == See Also == * [[Duality]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] 53709191bcbe9ae475f55cbd1e50f57b25a202ba File:Complements.svg 6 42 44 2023-07-15T06:04:54Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Improper isom.svg 6 43 45 2023-07-15T06:06:01Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Flector 0 44 46 2023-07-15T06:06:10Z Eric Lengyel 1 Created page with "[[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotorefle..." wikitext text/x-wiki [[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To possess the [[geometric property]], the components of $$\mathbf F$$ must satisfy the equation :$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ , and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$. An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$. == Norm == The [[bulk norm]] of a flector $$\mathbf F$$ is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ . The [[geometric norm]] of a flector $$\mathbf F$$ is thus :$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$. == Trigonometric Form == A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as :$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ . This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane. == Factorization == Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ , where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ , which is always unitized. The original flector $$\mathbf F$$ can now be expressed as :$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ . == Conversion from Flector to Matrix == Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices :$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Flector == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$ :$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$ :$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$ :$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$ :$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$ :$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$ :$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$ :$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$ :$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$ If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate :$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ , where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by $$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$ $$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$ $$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$ $$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ . == Flector Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x + 2(F_{gz}F_{pw} - F_{gx}F_{gy})q_y - 2(F_{gy}F_{pw} + F_{gz}F_{gx})q_z + 2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{px}F_{pw} - F_{gx}F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y + 2(F_{gx}F_{pw} - F_{gy}F_{gz})q_z - 2(F_{gz}F_{pw} + F_{gx}F_{gy})q_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{py}F_{pw} - F_{gy}F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z + 2(F_{gy}F_{pw} - F_{gz}F_{gx})q_x - 2(F_{gx}F_{pw} + F_{gy}F_{gz})q_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{pz}F_{pw} - F_{gz}F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2(F_{gx}F_{gy} - F_{gz}F_{pw})l_{vy} + 2(F_{gz}F_{gx} + F_{gy}F_{pw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2(F_{gy}F_{gz} - F_{gx}F_{pw})l_{vz} + 2(F_{gx}F_{gy} + F_{gz}F_{pw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2(F_{gz}F_{gx} - F_{gy}F_{pw})l_{vx} + 2(F_{gy}F_{gz} + F_{gx}F_{pw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy}F_{py} + F_{gz}F_{pz})l_{vx} + 2(F_{gx}F_{py} + F_{gy}F_{px})l_{vy} + 2(F_{gx}F_{pz} + F_{gz}F_{px} + F_{gy}F_{gw} + F_{py}F_{pw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} + 2(F_{gz}F_{pw} - F_{gx}F_{gy})l_{my} - 2(F_{gy}F_{pw} + F_{gz}F_{gx})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz}F_{pz} + F_{gx}F_{px})l_{vy} + 2(F_{gy}F_{pz} + F_{gz}F_{py})l_{vz} + 2(F_{gy}F_{px} + F_{gx}F_{py} + F_{gz}F_{gw} + F_{pz}F_{pw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} + 2(F_{gx}F_{pw} - F_{gy}F_{gz})l_{mz} - 2(F_{gz}F_{pw} + F_{gx}F_{gy})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx}F_{px} + F_{gy}F_{py})l_{vz} + 2(F_{gz}F_{px} + F_{gx}F_{pz})l_{vx} + 2(F_{gz}F_{py} + F_{gy}F_{pz} + F_{gx}F_{gw} + F_{px}F_{pw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} + 2(F_{gy}F_{pw} - F_{gz}F_{gx})l_{mx} - 2(F_{gx}F_{pw} + F_{gy}F_{gz})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2(F_{gx}F_{gy} - F_{gz}F_{pw})h_y + 2(F_{gz}F_{gx} + F_{gy}F_{pw})h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2(F_{gy}F_{gz} - F_{gx}F_{pw})h_z + 2(F_{gx}F_{gy} + F_{gz}F_{pw})h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2(F_{gz}F_{gx} - F_{gy}F_{pw})h_x + 2(F_{gy}F_{gz} + F_{gx}F_{pw})h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{gx}F_{gw} - F_{px}F_{pw})h_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{gy}F_{gw} - F_{py}F_{pw})h_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{gz}F_{gw} - F_{pz}F_{pw})h_z - h_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Motor]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 349eeda1b7c9adcf6947aed87c2388ff0802481e File:Distance point point.svg 6 45 47 2023-07-15T06:09:43Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Distance point line.svg 6 46 48 2023-07-15T06:09:53Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Distance point plane.svg 6 47 49 2023-07-15T06:10:03Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Distance line line.svg 6 48 50 2023-07-15T06:10:13Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Euclidean distance 0 49 51 2023-07-15T06:10:16Z Eric Lengyel 1 Created page with "The Euclidean distance between geometric objects can be measured by using [[commutators]] to calculate homogeneous [[magnitudes]]. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and p..." wikitext text/x-wiki The Euclidean distance between geometric objects can be measured by using [[commutators]] to calculate homogeneous [[magnitudes]]. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$\left\Vert[\mathbf p, \mathbf q]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \mathbf q]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$\left\Vert[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$\left\Vert[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CF} + \left\Vert[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CB} = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$\left\Vert[\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_+\right\Vert_\unicode{x25CF} + \left\Vert[\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_-\right\Vert_\unicode{x25CB} = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Commutators]] 038dfe603e429890de2f95e719d1e103d149b992 Projections 0 50 52 2023-07-15T06:11:05Z Eric Lengyel 1 Created page with "Projections and antiprojections of one geometric object onto another can be accomplished using [[interior products]] as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{..." wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using [[interior products]] as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A2}} \mathbf x) \mathbin{\unicode{x22A3}} \mathbf y$$. Applying the definitions of the left and right [[interior products]], this becomes :$$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A2}} \mathbf x) \mathbin{\unicode{x22A3}} \mathbf y = \left(\underline{\mathbf y_\smash{\unicode{x25CB}}} \wedge \mathbf x\right) \vee \mathbf y$$ . Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 12px;" | [[Image:point_plane.svg|300px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 12px;" | [[Image:point_line.svg|300px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \boldsymbol l\right) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_plane.svg|300px]] |} == Antiprojection == The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula $$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A8}} \mathbf x) \mathbin{\unicode{x2AE4}} \mathbf y$$. Applying the definitions of the left and right [[interior antiproducts]], this becomes :$$(\mathbf y_\unicode{x25CB} \mathbin{\unicode{x22A8}} \mathbf x) \mathbin{\unicode{x2AE4}} \mathbf y = \left(\underline{\mathbf y_\smash{\unicode{x25CB}}} \vee \mathbf x\right) \wedge \mathbf y$$ . Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \mathbf g\right) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 12px;" | [[Image:plane_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \vee \mathbf g\right) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 12px;" | [[Image:plane_line.svg|300px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$\left(\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf e_4\right) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_4\right) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using [[interior antiproducts]] with the [[bulk]] of the point or line instead of the [[weight]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{321}\right) \wedge \mathbf p = -p_xp_w \mathbf e_{423} - p_yp_w \mathbf e_{431} - p_zp_w \mathbf e_{412} + (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CF}}} \vee \mathbf e_{321}\right) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Interior product]] * [[Join and meet]] 41f73c9916b78ba037f0cc1255b45c44759bca28 File:Reverses.svg 6 57 59 2023-07-15T06:14:17Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Reverses 0 58 60 2023-07-15T06:14:21Z Eric Lengyel 1 Created page with "''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\math..." wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by :$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ . Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ . The reverse and antireverse of any element $$\mathbf x$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\mathbf{\tilde x}$$ . To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|820px]] == See Also == * [[Complements]] 836bf74e7b158f9cedf1a9eb94e38823630648df Grade and antigrade 0 59 61 2023-07-15T06:15:19Z Eric Lengyel 1 Created page with "The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade. The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization. The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathb..." wikitext text/x-wiki The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade. The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization. The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ . [[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3. == See Also == * [[Duality]] * [[Complements]] dd1095ec5f4dda0e778a18984a46f62c74c4976d File:Plane.svg 6 60 62 2023-07-15T06:16:53Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Plane 0 61 63 2023-07-15T06:16:58Z Eric Lengyel 1 Created page with "[[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric property]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, a..." wikitext text/x-wiki [[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric property]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal. When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself. A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by :$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ . == Plane at Infinity == If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space. <br clear="right" /> == See Also == * [[Point]] * [[Line]] a5620d676462659d8388d4c1688b33087becba63 Scalars and antiscalars 0 62 64 2023-07-15T06:20:18Z Eric Lengyel 1 Created page with "A ''scalar'' in a geometric algebra is an element having [[grade]] 0. Scalars are just ordinary real numbers, and they do not involve any basis vectors. The basis element representing the unit scalar is denoted by $$\mathbf 1$$, a boldface number one. The unit scalar $$\mathbf 1$$ is the multiplicative identity of the [[geometric product]]. For a general element $$\mathbf a$$, the notation $$a_{\mathbf 1}$$ means the scalar component of $$\mathbf a$$. An ''antiscalar'..." wikitext text/x-wiki A ''scalar'' in a geometric algebra is an element having [[grade]] 0. Scalars are just ordinary real numbers, and they do not involve any basis vectors. The basis element representing the unit scalar is denoted by $$\mathbf 1$$, a boldface number one. The unit scalar $$\mathbf 1$$ is the multiplicative identity of the [[geometric product]]. For a general element $$\mathbf a$$, the notation $$a_{\mathbf 1}$$ means the scalar component of $$\mathbf a$$. An ''antiscalar'' in a geometric algebra is an element having [[antigrade]] 0. Antiscalars are multiples of the volume element given by the [[wedge product]] of all basis vectors. The basis element representing the unit antiscalar is denoted by $$\large\unicode{x1D7D9}$$, a double-struck number one. The unit antiscalar $$\large\unicode{x1D7D9}$$ is the multiplicative identity of the [[geometric antiproduct]]. For a general element $$\mathbf a$$, the notation $$a_{\large\unicode{x1D7D9}}$$ means the antiscalar component of $$\mathbf a$$. == See Also == * [[Duality]] b34a5bb06552f8b281ed47de6784f79b4434bca0 Quaternion 0 63 65 2023-07-15T06:23:47Z Eric Lengyel 1 Created page with "__NOTOC__ A ''quaternion'' is an operator that performs a rotation about the origin in 3D space. Conventionally, a quaternion $$\mathbf q$$ is written as :$$\mathbf q = q_w + q_x \mathbf i + q_y \mathbf j + q_z \mathbf k$$ , where the "imaginary" units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ all square to $$-1$$ and multiply according to the rules :$$\mathbf{ij} = -\mathbf{ji} = \mathbf k$$ :$$\mathbf{jk} = -\mathbf{kj} = \mathbf i$$ :$$\mathbf{ki} = -\mathbf{..." wikitext text/x-wiki __NOTOC__ A ''quaternion'' is an operator that performs a rotation about the origin in 3D space. Conventionally, a quaternion $$\mathbf q$$ is written as :$$\mathbf q = q_w + q_x \mathbf i + q_y \mathbf j + q_z \mathbf k$$ , where the "imaginary" units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ all square to $$-1$$ and multiply according to the rules :$$\mathbf{ij} = -\mathbf{ji} = \mathbf k$$ :$$\mathbf{jk} = -\mathbf{kj} = \mathbf i$$ :$$\mathbf{ki} = -\mathbf{ik} = \mathbf j$$ . A ''unit quaternion'' is one for which $$q_w^2 + q_x^2 + q_y^2 + q_z^2 = 1$$. == Quaternions in 4D Rigid Geometric Algebra == Because quaternions keep the origin fixed, they are part of the group SO(3) where the special Euclidean group SE(3) and reciprocal special Euclidean group RSE(3) intersect. Consequently, the quaternions have two different representations in the four-dimensional rigid geometric algebra $$\mathcal G_{3,0,1}$$. === Quaternions as Motors === First, the quaternions are exactly the subset of [[motors]] that perform pure rotations about the origin without any translation. In this case, the units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ are identified as :$$\mathbf i = \mathbf e_{41}$$ :$$\mathbf j = \mathbf e_{42}$$ :$$\mathbf k = \mathbf e_{43}$$ . A quaternion can then be written as :$$\mathbf q = q_x \mathbf e_{41} + q_y \mathbf e_{42} + q_z \mathbf e_{43} + q_w {\large\unicode{x1D7D9}}$$ , and any object $$\mathbf x$$ (such as a [[point]], [[line]], or [[plane]]) is rotated about the origin through the sandwich product :$$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{q}}$$ , using the [[geometric antiproduct]]. A unit quaternion can also be written as :$$\mathbf q = \mathbf a \sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , where $$\mathbf a = a_x \mathbf e_{41} + a_y \mathbf e_{42} + a_z \mathbf e_{43}$$ is a unit bivector representing the axis of rotation, and $$\phi$$ is half the angle of rotation. === Quaternions as Dual Motors === Second, the quaternions are exactly the subset of [[dual motors]] for which the directrix lies in the horizon. In this case, the units $$\mathbf i$$, $$\mathbf j$$, and $$\mathbf k$$ are identified as :$$\mathbf i = -\mathbf e_{23}$$ :$$\mathbf j = -\mathbf e_{31}$$ :$$\mathbf k = -\mathbf e_{12}$$ . A quaternion can then be written as :$$\mathbf q = -q_x \mathbf e_{23} - q_y \mathbf e_{31} - q_z \mathbf e_{12} + q_w \mathbf 1$$ , and any object $$\mathbf x$$ (such as a [[point]], [[line]], or [[plane]]) is rotated about the origin through the sandwich product :$$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ , using the [[geometric product]]. A unit quaternion can also be written as :$$\mathbf q = -\mathbf a \sin\phi + \mathbf 1\cos\phi$$ , where $$\mathbf a = a_x \mathbf e_{23} + a_y \mathbf e_{31} + a_z \mathbf e_{12}$$ is a unit bivector representing the axis of rotation, and $$\phi$$ is half the angle of rotation. == See Also == * [[Motor]] * [[Flector]] ae9be99aa20980a5225c736d36cc0ed3dd40d31d Quaternions 0 64 66 2023-07-15T06:24:11Z Eric Lengyel 1 Redirected page to [[Quaternion]] wikitext text/x-wiki #REDIRECT [[Quaternion]] f24d39cb5535181a47c41073640857e68733c353 Dot products 0 67 69 2023-07-15T06:26:19Z Eric Lengyel 1 Created page with "The ''dot product'' is the inner product in geometric algebra, and it makes up the scalar part of the [[geometric product]]. There are two products with symmetric properties called the dot product and antidot product. The dot product and antidot product are important for the calculation of [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and r..." wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra, and it makes up the scalar part of the [[geometric product]]. There are two products with symmetric properties called the dot product and antidot product. The dot product and antidot product are important for the calculation of [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product includes the metric properties of the [[geometric product]], which means we have the following rules for the basis vectors. :$$\mathbf e_1 \mathbin{\unicode{x25CF}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x25CF}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x25CF}} \mathbf e_3 = 1$$ :$$\mathbf e_4 \mathbin{\unicode{x25CF}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x25CF}} \mathbf e_j = 0$$, for $$i \neq j$$. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:DotProduct.svg|720px]] == Antidot product == The antidot product is a dual to the dot product. The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is often written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntidotProduct.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] f6e8dc95dcc541188fb58db2b6702e6d493f8155 Interior products 0 70 72 2023-07-15T06:27:41Z Eric Lengyel 1 Created page with "The left and right ''interior products'' are special products in geometric algebra that are useful for performing [[projections]]. These products cancel common factors in their operands and thus reduce grade. Depending on the choice of dualization function, there are several possible interior products. We define the interior products in terms of the left and right [[complements]]. Interior products are also known as contraction products. == Left and Right Interior Prod..." wikitext text/x-wiki The left and right ''interior products'' are special products in geometric algebra that are useful for performing [[projections]]. These products cancel common factors in their operands and thus reduce grade. Depending on the choice of dualization function, there are several possible interior products. We define the interior products in terms of the left and right [[complements]]. Interior products are also known as contraction products. == Left and Right Interior Products == The ''left interior product'' between elements $$\mathbf a$$ and $$\mathbf b$$ is written as $$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b$$ and defined as :$$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b = \underline{\mathbf a} \vee \mathbf b$$ . The ''right interior product'' between elements $$\mathbf a$$ and $$\mathbf b$$ is written as $$\mathbf a \mathbin{\unicode{x22A2}} \mathbf b$$ and defined as :$$\mathbf a \mathbin{\unicode{x22A2}} \mathbf b = \mathbf a \vee \overline{\mathbf b}$$ . The left and right interior products satisfy the relationship :$$\mathbf a \mathbin{\unicode{x22A3}} \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\left[\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)\right]}\mathbf b \mathbin{\unicode{x22A2}} \mathbf a$$ . The following Cayley table shows the interior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. Cells colored blue belong only to the left interior product and are zero for the right interior product. Cells colored red belong only to the right interior product and are zero for the left interior product. Cells colored purple along the diagonal belong to both the left and right interior products. [[Image:InteriorProduct.svg|720px]] == Left and Right Interior Antiproducts == Like all operations in geometric algebra, the interior products have duals, which we call ''interior antiproducts''. The right and left interior antiproducts between elements $$\mathbf a$$ and $$\mathbf b$$ are written as $$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b$$ and $$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b$$, respectively, and they are defined as follows. :$$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x22A2}} \underline{\mathbf b}} = \mathbf a \wedge \overline{\mathbf b}$$ :$$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x22A3}} \underline{\mathbf b}} = \underline{\mathbf a} \wedge \mathbf b$$ The interior antiproducts are also related to the opposite interior products through the following equalities. :$$\mathbf a \mathbin{\unicode{x22A8}} \mathbf b = \overline{\mathbf a \mathbin{\unicode{x22A3}} \mathbf b}$$ :$$\mathbf a \mathbin{\unicode{x2AE4}} \mathbf b = \underline{\mathbf a \mathbin{\unicode{x22A2}} \mathbf b}$$ The following Cayley table shows the interior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. Cells colored blue belong only to the left interior antiproduct and are zero for the right interior antiproduct. Cells colored red belong only to the right interior antiproduct and are zero for the left interior antiproduct. Cells colored purple along the diagonal belong to both the left and right interior antiproducts. [[Image:InteriorAntiproduct.svg|720px]] == See Also == * [[Projections]] dffb5615cd31710e40482cffa6e6055385035863 File:WedgeProduct.svg 6 71 73 2023-07-15T06:28:22Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:AntiwedgeProduct.svg 6 72 74 2023-07-15T06:28:31Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Exterior products 0 73 75 2023-07-15T06:28:35Z Eric Lengyel 1 Created page with "The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\m..." wikitext text/x-wiki The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.) == Exterior Product == The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product. The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have :$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$ for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship :$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ . The wedge product adds the [[grades]] of its operands, so we have :$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ . The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:WedgeProduct.svg|720px]] == Exterior Antiproduct == The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product. Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have :$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ . The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntiwedgeProduct.svg|720px]] == De Morgan Laws == There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$ :$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$ :$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$ :$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$ == General Properties == The following table lists several general properties of the wedge product and antiwedge product. {| class="wikitable" ! Property !! Description |- | style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$ | style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$ | style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$ | style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$ | style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the wedge product. |- | style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the antiwedge product. |- | style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$ | style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$ | style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \wedge t = st$$ | style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$. |- | style="padding: 12px;" | $$s \vee t = st$$ | style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$. |} == See Also == * [[Geometric products]] * [[Dot products]] * [[Complements]] 6b5584771d86941f2fe4d4e3a2e84f9b6f2c59d3 File:GeometricProduct.svg 6 74 76 2023-07-15T06:29:21Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct.svg 6 75 77 2023-07-15T06:29:32Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Geometric products 0 76 78 2023-07-15T06:29:36Z Eric Lengyel 1 Created page with "The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct..." wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells colored yellow correspond to the contribution from the [[wedge product]], and cells colored orange correspond to the contribution from the [[dot product]]. [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells colored yellow correspond to the contribution from the [[antiwedge product]], and cells colored orange correspond to the contribution from the [[antidot product]]. [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] a5d1871f77afb1886212de91098d2fb5af68c274 Wedge products 0 77 79 2023-07-15T06:30:01Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 File:Duality.svg 6 78 80 2023-07-15T06:33:16Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Duality 0 79 81 2023-07-15T06:33:26Z Eric Lengyel 1 Created page with "[[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]] The concept of duality can be understood geometric..." wikitext text/x-wiki [[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]] The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other. When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture. == See Also == * [[Complements]] f38474aaff72e60168e22e5ca8b8ffbb6bb66ff7 File:Point.svg 6 80 82 2023-07-15T06:35:24Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Point 0 81 83 2023-07-15T06:35:28Z Eric Lengyel 1 Created page with "[[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric property]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and..." wikitext text/x-wiki [[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric property]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$. When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself. A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by :$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ . == Points at Infinity == If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. <br clear="right" /> == See Also == * [[Line]] * [[Plane]] 76bfb68972462ed0ab7470c3979f4dc49d2547e9 Commutators 0 82 84 2023-07-15T06:36:24Z Eric Lengyel 1 Created page with "In geometric algebra, there are four ''commutator'' products defined as follows. :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b - \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b + \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode..." wikitext text/x-wiki In geometric algebra, there are four ''commutator'' products defined as follows. :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b - \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27D1}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27D1}} \mathbf b + \mathbf b \mathbin{\unicode{x27D1}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27C7}}_- = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27C7}} \mathbf b - \mathbf b \mathbin{\unicode{x27C7}} \mathbf a\right)$$ :$$[\mathbf a, \mathbf b]^{\Large\unicode{x27C7}}_+ = \dfrac{1}{2}\left(\mathbf a \mathbin{\unicode{x27C7}} \mathbf b + \mathbf b \mathbin{\unicode{x27C7}} \mathbf a\right)$$ Commutators provide a way to formulate [[join and meet]] operations as well as [[Euclidean distances]] between different types of geometric objects. A commutator is also used to determine a new [[line]] containing the two closest points on a pair of skew [[lines]]. == See Also == * [[Join and meet]] * [[Euclidean distance]] 4f7945ea7e17125c4e5c52bd7358b7387ea683d1 Grade 0 83 85 2023-07-15T06:36:58Z Eric Lengyel 1 Redirected page to [[Grade and antigrade]] wikitext text/x-wiki #REDIRECT [[Grade and antigrade]] 22d877841f52c9ad1e9fa040e3fdceb9994ec5af Antigrade 0 84 86 2023-07-15T06:37:07Z Eric Lengyel 1 Redirected page to [[Grade and antigrade]] wikitext text/x-wiki #REDIRECT [[Grade and antigrade]] 22d877841f52c9ad1e9fa040e3fdceb9994ec5af Scalars 0 85 87 2023-07-15T06:39:24Z Eric Lengyel 1 Redirected page to [[Scalars and antiscalars]] wikitext text/x-wiki #REDIRECT [[Scalars and antiscalars]] 2adee2d7835bba6d84d4c981fd9dd78635eff37a Antiscalars 0 86 88 2023-07-15T06:39:32Z Eric Lengyel 1 Redirected page to [[Scalars and antiscalars]] wikitext text/x-wiki #REDIRECT [[Scalars and antiscalars]] 2adee2d7835bba6d84d4c981fd9dd78635eff37a Vectors 0 87 89 2023-07-15T06:40:20Z Eric Lengyel 1 Redirected page to [[Vector]] wikitext text/x-wiki #REDIRECT [[Vector]] a9769134b69352ae0540e7e7f328ecbbad3c42ee Vector 0 88 90 2023-07-15T06:40:57Z Eric Lengyel 1 Created page with "A ''vector'' in a geometric algebra is an element composed entirely of components having grade 1. == See Also == * [[Bivector]] * [[Trivector]] * [[Antivector]]" wikitext text/x-wiki A ''vector'' in a geometric algebra is an element composed entirely of components having grade 1. == See Also == * [[Bivector]] * [[Trivector]] * [[Antivector]] bc550d1b43d0fe5a387354c613108018e40eac4a Antivectors 0 89 91 2023-07-15T06:41:31Z Eric Lengyel 1 Redirected page to [[Antivector]] wikitext text/x-wiki #REDIRECT [[Antivector]] 7989830103a2a3811748a8000d40aefc840c792f Antivector 0 90 92 2023-07-15T06:42:32Z Eric Lengyel 1 Created page with "An ''antivector'' in a geometric algebra is an element composed entirely of components having [[antigrade]] 1. In an ''n''-dimensional geometric algebra, these are the elements having grade $$n - 1$$. == See Also == * [[Vector]] * [[Bivector]] * [[Trivector]]" wikitext text/x-wiki An ''antivector'' in a geometric algebra is an element composed entirely of components having [[antigrade]] 1. In an ''n''-dimensional geometric algebra, these are the elements having grade $$n - 1$$. == See Also == * [[Vector]] * [[Bivector]] * [[Trivector]] 489cea4c3d8a287208223f177fc18df38fb3653a Bivector 0 91 93 2023-07-15T06:42:59Z Eric Lengyel 1 Created page with "A ''bivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 2. == See Also == * [[Vector]] * [[Trivector]] * [[Antivector]]" wikitext text/x-wiki A ''bivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 2. == See Also == * [[Vector]] * [[Trivector]] * [[Antivector]] 37136a3e0ae1b4a329449a91e0afa730998b7422 Trivector 0 92 94 2023-07-15T06:43:19Z Eric Lengyel 1 Created page with "A ''trivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 3. == See Also == * [[Vector]] * [[Bivector]] * [[Antivector]]" wikitext text/x-wiki A ''trivector'' in a geometric algebra is an element composed entirely of components having [[grade]] 3. == See Also == * [[Vector]] * [[Bivector]] * [[Antivector]] a289704a5444cc417affd737ad6888964fc8e3d1 Points 0 93 95 2023-07-15T06:43:56Z Eric Lengyel 1 Redirected page to [[Point]] wikitext text/x-wiki #REDIRECT [[Point]] 7b65de33209ef5449918fa5f8814c2e3721ec62f Lines 0 94 96 2023-07-15T06:44:05Z Eric Lengyel 1 Redirected page to [[Line]] wikitext text/x-wiki #REDIRECT [[Line]] ecb926a9291d9db11c3696c750a5cf7901eed056 Planes 0 95 97 2023-07-15T06:44:13Z Eric Lengyel 1 Redirected page to [[Plane]] wikitext text/x-wiki #REDIRECT [[Plane]] ea9ce71332228b2b2df398882c1a5777df2df690 Rotations 0 96 98 2023-07-15T06:44:20Z Eric Lengyel 1 Redirected page to [[Rotation]] wikitext text/x-wiki #REDIRECT [[Rotation]] 16ea69fb8455e069f0c5206eee190a38f97c0353 Reflections 0 97 99 2023-07-15T06:44:27Z Eric Lengyel 1 Redirected page to [[Reflection]] wikitext text/x-wiki #REDIRECT [[Reflection]] d97ab92872e66d5e96308dcd76ade7d75bace388 Translations 0 98 100 2023-07-15T06:44:38Z Eric Lengyel 1 Redirected page to [[Translation]] wikitext text/x-wiki #REDIRECT [[Translation]] 03fd09c41513154b9b7e7331fe81e0cd601f992e Bivectors 0 99 101 2023-07-15T06:44:55Z Eric Lengyel 1 Redirected page to [[Bivector]] wikitext text/x-wiki #REDIRECT [[Bivector]] 7fc5bc6464e935e0b21791d0f323dfff5c2b780f Trivectors 0 100 102 2023-07-15T06:45:09Z Eric Lengyel 1 Redirected page to [[Trivector]] wikitext text/x-wiki #REDIRECT [[Trivector]] fddc959d7c29ca1f5189071f80d84b038e0332e5 Grades 0 101 103 2023-07-15T06:45:34Z Eric Lengyel 1 Redirected page to [[Grade and antigrade]] wikitext text/x-wiki #REDIRECT [[Grade and antigrade]] 22d877841f52c9ad1e9fa040e3fdceb9994ec5af Complement 0 102 104 2023-07-15T06:45:54Z Eric Lengyel 1 Redirected page to [[Complements]] wikitext text/x-wiki #REDIRECT [[Complements]] dbc203c2b7f5656d8672fc940b154ebcadfe4ebb Reverse 0 103 105 2023-07-15T06:46:07Z Eric Lengyel 1 Redirected page to [[Reverses]] wikitext text/x-wiki #REDIRECT [[Reverses]] e7287b70460af8f2068d72d6fbcd48be51aa2d86 Bulk 0 104 106 2023-07-15T06:46:24Z Eric Lengyel 1 Redirected page to [[Bulk and weight]] wikitext text/x-wiki #REDIRECT [[Bulk and weight]] abc962efe81a15c140f05e2c1c3d41424f0daedb Weight 0 105 107 2023-07-15T06:46:37Z Eric Lengyel 1 Redirected page to [[Bulk and weight]] wikitext text/x-wiki #REDIRECT [[Bulk and weight]] abc962efe81a15c140f05e2c1c3d41424f0daedb Unitized 0 106 108 2023-07-15T06:47:08Z Eric Lengyel 1 Redirected page to [[Unitization]] wikitext text/x-wiki #REDIRECT [[Unitization]] 5dd28b722eed577a6a685c20a1f3610adf752d69 Antiscalar 0 107 109 2023-07-15T06:47:22Z Eric Lengyel 1 Redirected page to [[Scalars and antiscalars]] wikitext text/x-wiki #REDIRECT [[Scalars and antiscalars]] 2adee2d7835bba6d84d4c981fd9dd78635eff37a Weight norm 0 108 110 2023-07-15T06:47:50Z Eric Lengyel 1 Redirected page to [[Geometric norm]] wikitext text/x-wiki #REDIRECT [[Geometric norm]] 5044e2e82ada4d19757a27fa0864a5c86bdf1c61 Bulk norm 0 109 111 2023-07-15T06:48:01Z Eric Lengyel 1 Redirected page to [[Geometric norm]] wikitext text/x-wiki #REDIRECT [[Geometric norm]] 5044e2e82ada4d19757a27fa0864a5c86bdf1c61 Scalar 0 110 112 2023-07-15T06:48:17Z Eric Lengyel 1 Redirected page to [[Scalars and antiscalars]] wikitext text/x-wiki #REDIRECT [[Scalars and antiscalars]] 2adee2d7835bba6d84d4c981fd9dd78635eff37a Geometric antiproduct 0 111 113 2023-07-15T06:48:50Z Eric Lengyel 1 Redirected page to [[Geometric product]] wikitext text/x-wiki #REDIRECT [[Geometric product]] 412c7f80af4e4652833d00702df9f0d5cdbfa99f Geometric antiproduct 0 111 114 113 2023-07-15T06:49:08Z Eric Lengyel 1 Changed redirect target from [[Geometric product]] to [[Geometric products]] wikitext text/x-wiki #REDIRECT [[Geometric products]] a791a499343bcafe92583512ac007a6806f8ecf8 Geometric product 0 112 115 2023-07-15T06:49:20Z Eric Lengyel 1 Redirected page to [[Geometric products]] wikitext text/x-wiki #REDIRECT [[Geometric products]] a791a499343bcafe92583512ac007a6806f8ecf8 Exterior product 0 113 116 2023-07-15T06:49:37Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 Exterior antiproduct 0 114 117 2023-07-15T06:49:48Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 Wedge product 0 115 118 2023-07-15T06:50:01Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 Antiwedge product 0 116 119 2023-07-15T06:50:16Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 Antiwedge products 0 117 120 2023-07-15T06:50:25Z Eric Lengyel 1 Redirected page to [[Exterior products]] wikitext text/x-wiki #REDIRECT [[Exterior products]] 886cc83a5412c43e200ac8431c2f86522257eeb8 Projection 0 118 121 2023-07-15T06:50:47Z Eric Lengyel 1 Redirected page to [[Projections]] wikitext text/x-wiki #REDIRECT [[Projections]] 93824c4da8a89ce3a48c45b49e27882cd1d02bf1 Commutator 0 119 122 2023-07-15T06:51:07Z Eric Lengyel 1 Redirected page to [[Commutators]] wikitext text/x-wiki #REDIRECT [[Commutators]] 4909cbe94c5aa206f34b6a86f58e841a75196f21 Dot product 0 120 123 2023-07-15T06:51:27Z Eric Lengyel 1 Redirected page to [[Dot products]] wikitext text/x-wiki #REDIRECT [[Dot products]] ad1a39bb977e36df47bab54d3c59ac9163d96b59 Antidot product 0 121 124 2023-07-15T06:51:39Z Eric Lengyel 1 Redirected page to [[Dot products]] wikitext text/x-wiki #REDIRECT [[Dot products]] ad1a39bb977e36df47bab54d3c59ac9163d96b59 Interior product 0 122 125 2023-07-15T06:51:53Z Eric Lengyel 1 Redirected page to [[Interior products]] wikitext text/x-wiki #REDIRECT [[Interior products]] 603a1e2f20b8832eec365174b7092534683f8d1c Interior antiproduct 0 123 126 2023-07-15T06:52:02Z Eric Lengyel 1 Redirected page to [[Interior products]] wikitext text/x-wiki #REDIRECT [[Interior products]] 603a1e2f20b8832eec365174b7092534683f8d1c Main Page 0 1 127 2 2023-07-15T06:53:52Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Interior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Commutators]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] d20959634e51c0ab15e0a35693880f1f271479fd 169 127 2023-08-05T05:17:29Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Interior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Commutators]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] 83323fc788dc9064eb7b288469e189f98adf8c77 Flectors 0 124 128 2023-07-15T06:56:20Z Eric Lengyel 1 Redirected page to [[Flector]] wikitext text/x-wiki #REDIRECT [[Flector]] df2e8d26f9aec77316c1c9c72925aec4f325e463 Motors 0 125 129 2023-07-15T06:56:29Z Eric Lengyel 1 Redirected page to [[Motor]] wikitext text/x-wiki #REDIRECT [[Motor]] 7883954015c088600f1b3a6d2956e64a817f5910 Antireverse 0 126 130 2023-07-15T06:57:01Z Eric Lengyel 1 Redirected page to [[Reverses]] wikitext text/x-wiki #REDIRECT [[Reverses]] e7287b70460af8f2068d72d6fbcd48be51aa2d86 Inversions 0 127 131 2023-07-15T06:58:33Z Eric Lengyel 1 Redirected page to [[Inversion]] wikitext text/x-wiki #REDIRECT [[Inversion]] 6cf15f76e05cf617bec1e7e1aeeab529145dc483 Transflections 0 128 132 2023-07-15T06:59:21Z Eric Lengyel 1 Redirected page to [[Transflection]] wikitext text/x-wiki #REDIRECT [[Transflection]] 33024da1c7aaa47dc9ed60ea9780998ad4ad14fb Join 0 129 133 2023-07-15T08:48:49Z Eric Lengyel 1 Redirected page to [[Join and meet]] wikitext text/x-wiki #REDIRECT [[Join and meet]] 4964b46f907afce0b99e41e767447f2c866235ce Meet 0 130 134 2023-07-15T08:48:57Z Eric Lengyel 1 Redirected page to [[Join and meet]] wikitext text/x-wiki #REDIRECT [[Join and meet]] 4964b46f907afce0b99e41e767447f2c866235ce Euclidean distance 0 49 135 51 2023-08-01T05:04:46Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance between geometric objects can be measured by homogeneous [[magnitudes]] of [[attitudes]]. In particular, the Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two objects '''a''' and '''b''' is given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Commutators]] e10a7eb588fc7a5b9ae810adc37558ff051784de 138 135 2023-08-01T05:06:01Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki The Euclidean distance between geometric objects can be measured by homogeneous [[magnitudes]] of [[attitudes]]. In particular, the Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two objects '''a''' and '''b''' is given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] 7ec0c59795c7e24242b794e3246adc7ac799fdac 141 138 2023-08-01T05:23:24Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a\right\Vert_\unicode{x25CB} \vee \left\Vert\mathbf b\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] 0033a5c8461b881427534bbacbba8044a0eae36c 142 141 2023-08-03T01:38:06Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \vee \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] dfab07512fadc51c9ec50ad4cf6cd119b4c729a7 143 142 2023-08-03T01:38:59Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Formula !! Interpretation !! Illustration |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] b1224f065b5749d6ae173a42e5341b5d82babdc9 Attitudes 0 131 136 2023-08-01T05:04:57Z Eric Lengyel 1 Redirected page to [[Attitude]] wikitext text/x-wiki #REDIRECT [[Attitude]] 7d3e673cecacdfeaa3bd5716fbde4fe9ccaf29c0 Magnitudes 0 132 137 2023-08-01T05:05:34Z Eric Lengyel 1 Redirected page to [[Magnitude]] wikitext text/x-wiki #REDIRECT [[Magnitude]] f462b3359c6201fe26694e6162b42f2482a010fa Euclidean distances 0 133 139 2023-08-01T05:06:22Z Eric Lengyel 1 Redirected page to [[Euclidean distance]] wikitext text/x-wiki #REDIRECT [[Euclidean distance]] 2d4a54ecc0ffef922128c12ba72273f89092b4b8 Magnitude 0 24 140 26 2023-08-01T05:07:23Z Eric Lengyel 1 /* Examples */ wikitext text/x-wiki A ''magnitude'' is a quantity that represents a concrete distance of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows: :$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one. === Examples === * The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator. * [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norm]] and [[weight norm]] of expressions involving [[attitudes]]. * Exponentiating the magnitude $$\delta\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$\delta/\phi$$ is the pitch of the screw transformation. == See Also == * [[Geometric norm]] * [[Unitization]] b5887528c17e0ce5dc5791e692a5d10b04ab5e5a Translation 0 31 144 33 2023-08-04T07:46:14Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Dual translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 885a9643f3d8fd6c99c5066bbae513d534cc5fc4 Antiprojection 0 136 152 2023-08-05T01:58:07Z Eric Lengyel 1 Redirected page to [[Projections]] wikitext text/x-wiki #REDIRECT [[Projections]] 93824c4da8a89ce3a48c45b49e27882cd1d02bf1 File:Antispace1.svg 6 138 155 2023-08-05T03:55:11Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Antispace2.svg 6 139 156 2023-08-05T03:55:55Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Antispace3.svg 6 140 157 2023-08-05T03:56:14Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Antispace4.svg 6 141 158 2023-08-05T03:56:27Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Antispace5.svg 6 142 164 2023-08-05T05:12:14Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Motor 0 3 170 4 2023-08-06T05:26:32Z Eric Lengyel 1 wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 3ef86d77ffe8b148f4a944050f0e60a48625ffec 171 170 2023-08-06T05:36:16Z Eric Lengyel 1 wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol L$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 9e2120b826b981c401392c0a4bc5a75b048102d8 172 171 2023-08-06T05:36:24Z Eric Lengyel 1 wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 7f91672f36582a9384d09927268e728c8c122263 Dot products 0 67 175 69 2023-08-25T18:28:10Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, and $$\mathbf G$$ is the $$16 \times 16$$ extended metric tensor. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:DotProduct.svg|720px]] == Antidot product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, and $$\mathbb G$$ is the $$16 \times 16$$ extended antimetric tensor. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntidotProduct.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] bb18025c1a490b57eedc970836e128f836e5aac7 176 175 2023-08-25T18:29:13Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ extended metric tensor, and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:DotProduct.svg|720px]] == Antidot product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ extended antimetric tensor. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntidotProduct.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] 2fb5a06e52e7c25ed9ff431481c395c938c065a3 Geometric norm 0 38 177 40 2023-08-25T19:20:26Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf x$$ with itself: :$$\left\Vert\mathbf x\right\Vert_\unicode{x25CF} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf x$$, denoted $$\left\Vert\mathbf x\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf x$$ with itself: :$$\left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf x\right\Vert = \left\Vert\mathbf x\right\Vert_\unicode{x25CF} + \left\Vert\mathbf x\right\Vert_\unicode{x25CB} = \sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x} + \sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf x$$ is given by :$$\widehat{\left\Vert\mathbf x\right\Vert} = \dfrac{\left\Vert\mathbf x\right\Vert}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf x\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf x \mathbin{\unicode{x25CF}} \mathbf x}}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == See Also == * [[Geometric property]] 89dc8add8340153e56a4e6ed85ef0f39558782fd Geometric constraint 0 40 178 42 2023-08-25T19:22:39Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf x$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf x$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde x} = \mathbf x \mathbin{\unicode{x25CF}} \mathbf x$$ and :$$\mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = \mathbf x \mathbin{\unicode{x25CB}} \mathbf x$$ . The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements&mdash;they all possess the geometric property. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] e8f9a6133ee2aaa5fd30cbda69c4a33d5c2f6a17 Join and meet 0 11 182 13 2023-08-26T00:20:15Z Eric Lengyel 1 wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$. | style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l^* \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$. | style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]] |} == See Also == * [[Exterior products]] * [[Commutators]] b7833c671b95eff51cc83b28b035606e52cb72a1 183 182 2023-08-26T00:20:26Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$. | style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l^* \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$. | style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^* \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]] |} == See Also == * [[Exterior products]] be12a111b2b791acc9c1b2a624809c9015fb921a Transformation groups 0 25 184 27 2023-08-26T00:25:01Z Eric Lengyel 1 wikitext text/x-wiki In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ . Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$. Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$ or by a [[reciprocal flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ . Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$. The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3). The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively. [[Image:Groups.svg|800px]] Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$. In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form :$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf t_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ , where the $$n \times n$$ submatrix $$\mathbf m$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form :$$\begin{bmatrix} \mathbf m_{n \times n} & \mathbf 0_{n \times 1} \\ \mathbf t_{1 \times n} & 1 \end{bmatrix}$$ . In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf m$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf m$$ is the identity matrix. Finally, when $$\mathbf t = \mathbf 0$$, the two matrices above have the same form and belong to O(''n''). The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways. == See Also == * [[Motor]] * [[Flector]] 1ced4236707147dc9abc64d979a2187832710d8a Complement rotation 0 37 185 39 2023-08-26T00:25:42Z Eric Lengyel 1 Eric Lengyel moved page [[Dual rotation]] to [[Reciprocal rotation]] without leaving a redirect wikitext text/x-wiki A ''dual rotation'' is a proper isometry of dual Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[dual motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a dual rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector. Under a dual rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix. == Example == The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the dual rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line. [[Image:Rotation.svg|480px]] [[Image:DualRotation.svg|480px]] == Calculation == The exact dual rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$ |} == See Also == * [[Rotation]] * [[Dual translation]] * [[Dual reflection]] 694f05e6b5d39b3a68fe24a9ba47ed50b9cc15b3 Complement translation 0 34 186 36 2023-08-26T00:26:01Z Eric Lengyel 1 Eric Lengyel moved page [[Dual translation]] to [[Reciprocal translation]] without leaving a redirect wikitext text/x-wiki __NOTOC__ A ''dual translation'' is a proper isometry of dual Euclidean space. The specific kind of [[dual motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the dual translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact dual translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Dual Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Dual Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is dual translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Dual rotation]] * [[Dual reflection]] f5dbfdf842b1ba98ed2fbe6ab60ccecb2f63c7be Complement translation 0 34 187 186 2023-08-26T00:27:16Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space. The specific kind of [[reciprocal motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact reciprocal translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reciprocal Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Reciprocal Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{32} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Reciprocal rotation]] * [[Reciprocal reflection]] 85ddb3eb73fefa9ecc252e7232aacbd483c6f24b 223 187 2023-10-01T00:31:45Z Eric Lengyel 1 /* Reciprocal Translation to Horizon */ wikitext text/x-wiki __NOTOC__ A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space. The specific kind of [[reciprocal motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact reciprocal translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reciprocal Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Reciprocal Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Reciprocal rotation]] * [[Reciprocal reflection]] 84acb84893568b0e2552daae39f7b6271c18ff73 Complement translations 0 143 188 2023-08-26T00:27:36Z Eric Lengyel 1 Redirected page to [[Reciprocal translation]] wikitext text/x-wiki #REDIRECT [[Reciprocal translation]] 26ff3a9286421e038f8ef31e2b32072e1d3424b1 Complement rotations 0 144 189 2023-08-26T00:27:54Z Eric Lengyel 1 Redirected page to [[Reciprocal rotation]] wikitext text/x-wiki #REDIRECT [[Reciprocal rotation]] e875e8754b8a92e72dbe62f58925f2ba56274d3b Complement rotation 0 37 190 185 2023-08-26T00:28:28Z Eric Lengyel 1 wikitext text/x-wiki A ''reciprocal rotation'' is a proper isometry of reciprocal Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[reciprocal motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a reciprocal rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector. Under a reciprocal rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix. == Example == The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the reciprocal rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line. [[Image:Rotation.svg|480px]] [[Image:DualRotation.svg|480px]] == Calculation == The exact reciprocal rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$ |} == See Also == * [[Rotation]] * [[Reciprocal translation]] * [[Reciprocal reflection]] 6f7d97f24a97dae954cd95a852435cfd2caa22bc File:Groups.svg 6 26 191 28 2023-08-26T00:31:16Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Groups.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Transformation groups 0 25 192 184 2023-08-26T00:34:35Z Eric Lengyel 1 wikitext text/x-wiki In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ . Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$. Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$ or by a [[reciprocal flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ . Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$. The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3). The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively. [[Image:Groups.svg|800px]] Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$. In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ , where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ . In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to O(''n''). The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways. == See Also == * [[Motor]] * [[Flector]] 861473aa8d5684ccd923798e760dcf44e9203eb0 File:GeometricProduct.svg 6 74 193 76 2023-08-26T00:40:11Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct.svg 6 75 194 77 2023-08-26T00:40:29Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Geometric products 0 76 195 78 2023-08-26T00:41:01Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells colored yellow correspond to the contribution from the [[wedge product]]. [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells colored yellow correspond to the contribution from the [[antiwedge product]]. [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] 88400496df13c003418bb4fae41af7daf6eee048 File:GeometricProduct201.svg 6 22 196 24 2023-08-26T00:43:02Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricProduct201.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct201.svg 6 23 197 25 2023-08-26T00:43:12Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct201.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Geometric norms 0 145 198 2023-08-26T00:43:45Z Eric Lengyel 1 Redirected page to [[Geometric norm]] wikitext text/x-wiki #REDIRECT [[Geometric norm]] 5044e2e82ada4d19757a27fa0864a5c86bdf1c61 Rigid Geometric Algebra for 2D Space 0 19 199 21 2023-08-26T00:46:13Z Eric Lengyel 1 /* Join and Meet */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ :$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect. Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel. |- | style="padding: 12px;" | $$\boldsymbol l^* \wedge \mathbf p = -l_yp_z\mathbf e_{23} + l_xp_z\mathbf e_{31} + (l_yp_x - l_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. |- | style="padding: 12px;" | $$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin. :$$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\underline{\mathbf p_\smash{\unicode{x25CF}}} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 98af02e667e41c7a8e44b12485849576f8bcc8f0 202 199 2023-08-26T01:00:09Z Eric Lengyel 1 /* Projections */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$l_x^2 + l_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$l_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$l_x^2 + l_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[flector]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ :$$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect. Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel. |- | style="padding: 12px;" | $$\boldsymbol l^* \wedge \mathbf p = -l_yp_z\mathbf e_{23} + l_xp_z\mathbf e_{31} + (l_yp_x - l_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\boldsymbol l^* \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. |- | style="padding: 12px;" | $$\left(\mathbf p^* \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin. :$$\left(\boldsymbol l^* \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\star \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 0386484b5b447ac073bbe6dcf58ec87acc6090ef 203 202 2023-08-26T01:06:24Z Eric Lengyel 1 wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^* \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\star \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 64910ac67f2a4e7fda715e7a8d9e733adffb12bb 204 203 2023-08-26T01:13:11Z Eric Lengyel 1 /* Projections */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. b721c5292d58623b2f17e17e286f3662abbbbe1f 205 204 2023-08-26T08:33:36Z Eric Lengyel 1 /* Projections */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode[seguisym]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode[seguisym]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 2b3cea83c27351be3009d5107a3f3cceceaba0d4 206 205 2023-08-26T08:44:12Z Eric Lengyel 1 /* Projections */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. f8121108e0a947b1d814602c15e8e08786897394 207 206 2023-08-26T08:44:26Z Eric Lengyel 1 /* Join and Meet */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line. 9c6c17bed39ec5d14cff8f79fdd2a28a143a517a Bulk norms 0 146 200 2023-08-26T00:47:58Z Eric Lengyel 1 Redirected page to [[Geometric norm]] wikitext text/x-wiki #REDIRECT [[Geometric norm]] 5044e2e82ada4d19757a27fa0864a5c86bdf1c61 Weight norms 0 147 201 2023-08-26T00:48:09Z Eric Lengyel 1 Redirected page to [[Geometric norm]] wikitext text/x-wiki #REDIRECT [[Geometric norm]] 5044e2e82ada4d19757a27fa0864a5c86bdf1c61 Unitization 0 39 208 41 2023-08-26T20:18:34Z Eric Lengyel 1 wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf x$$ is unitized by calculating :$$\mathbf{\hat x} = \dfrac{\mathbf x}{\left\Vert\mathbf x\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf x}{\sqrt{\mathbf x \mathbin{\unicode{x25CB}} \mathbf x}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == See Also == * [[Geometric norm]] c2af0a4c3afa26753480f65497964b14d1bce899 235 208 2023-10-23T07:19:48Z Eric Lengyel 1 wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf u$$ is unitized by calculating :$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == See Also == * [[Geometric norm]] b810edfc38a306e9b65579735ffccc9ead3011fa Join and meet 0 11 209 183 2023-08-26T20:19:40Z Eric Lengyel 1 wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$. | style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$. | style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]] |} == See Also == * [[Exterior products]] c3cc901c0e1b9c1544250ea7f339c3b2d0322cf6 239 209 2023-10-23T07:28:58Z Eric Lengyel 1 wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]] |} == See Also == * [[Exterior products]] ec4c7cd493c92516285b585ef9606335bb43255a Projections 0 50 210 52 2023-08-26T21:59:03Z Eric Lengyel 1 wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ . Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 12px;" | [[Image:point_plane.svg|300px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 12px;" | [[Image:point_line.svg|300px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_plane.svg|300px]] |} == Antiprojection == The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ . Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 12px;" | [[Image:plane_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 12px;" | [[Image:plane_line.svg|300px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Interior product]] * [[Join and meet]] ab50ca59445a9f7bb3e004aed35ce3db92f54a6c 211 210 2023-08-27T00:48:05Z Eric Lengyel 1 wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ . Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 12px;" | [[Image:point_onto_plane.svg|300px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 12px;" | [[Image:point_onto_line.svg|300px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_onto_plane.svg|300px]] |} == Antiprojection == The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ . Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 12px;" | [[Image:plane_onto_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_onto_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 12px;" | [[Image:plane_onto_line.svg|300px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Interior product]] * [[Join and meet]] 76124b6969d47846a6371e17fbc45ce4365d4ab2 218 211 2023-08-27T00:50:51Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ . Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 12px;" | [[Image:point_onto_plane.svg|300px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 12px;" | [[Image:point_onto_line.svg|300px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_onto_plane.svg|300px]] |} == Antiprojection == The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ . Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 12px;" | [[Image:plane_onto_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | [[Image:line_onto_point.svg|300px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 12px;" | [[Image:plane_onto_line.svg|300px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Join and meet]] 5dd9806f57aa3a46228b8ab993a8aeae6c8dc2fa 219 218 2023-08-27T00:56:59Z Eric Lengyel 1 wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ . Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 2em;" | [[Image:point_onto_line.svg|200px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]] |} == Antiprojection == The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula :$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ . Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Join and meet]] f09eb99eddac4f0bdaa57a7b42a841c4fa5c37a3 227 219 2023-10-19T06:09:54Z Eric Lengyel 1 wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The orthogonal projection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula :$$\mathbf b \vee (\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ , where the operation in parentheses is the [[weight expansion]] of $$\mathbf a$$ into $$\mathbf b$$. Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$\mathbf g \vee (\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}\boldsymbol l \vee (\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)(l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3) \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 2em;" | [[Image:point_onto_line.svg|200px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}\mathbf g \vee (\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]] |} == Antiprojection == The orthogonal antiprojection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula :$$\mathbf b \wedge (\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ , where the operation in parentheses is the [[weight contraction]] of $$\mathbf a$$ with $$\mathbf b$$. Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$\mathbf p \wedge (\mathbf g \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) = p_w^2(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}\mathbf p \wedge (\boldsymbol l \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) =\, &p_w^2(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}\boldsymbol l \wedge (\mathbf g \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$\mathbf g \vee (\mathbf e_4 \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$\boldsymbol l \vee (\mathbf e_4 \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the [[bulk contraction]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$\mathbf p \wedge (\mathbf e_{321} \vee \mathbf p^\unicode["segoe ui symbol"]{x2605}) = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$\boldsymbol l \wedge (\mathbf e_{321} \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2605}) = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == See Also == * [[Join and meet]] c2832a4b1e6dc1c446a112822cf0e0e13f0c04fd File:Point onto plane.svg 6 148 212 2023-08-27T00:48:42Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Point onto line.svg 6 149 213 2023-08-27T00:48:53Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line onto plane.svg 6 150 214 2023-08-27T00:49:04Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Plane onto point.svg 6 151 215 2023-08-27T00:49:15Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line onto point.svg 6 152 216 2023-08-27T00:49:32Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Plane onto line.svg 6 153 217 2023-08-27T00:49:44Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Rotation 0 30 220 32 2023-09-05T20:19:45Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its weight [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$. == Calculation == The exact rotation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Reciprocal rotation]] * [[Translation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 9a99acd8431977d5be50d4be17527e6c292be7e1 Translation 0 31 221 144 2023-09-05T20:19:56Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\mathbf t = (t_x, t_y, t_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\mathbf t$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2t_xp_w)\mathbf e_1 + (p_y + 2t_yp_w)\mathbf e_2 + (p_z + 2t_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2t_y l_{vz} - 2t_z l_{vy})\mathbf e_{23} + (l_{my} + 2t_z l_{vx} - 2t_x l_{vz})\mathbf e_{31} + (l_{mz} + 2t_x l_{vy} - 2t_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2t_xg_x - 2t_yg_y - 2t_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Reciprocal translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] e5b7d3f0c9544d8989f54ac1de5cccc363e85648 Complements 0 41 225 43 2023-10-19T01:27:17Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation :$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation :$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ . This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$ :$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|900px]] == Weight Complements == The complement of an element's weight is particularly useful because it extracts the attitude of a geometric object as an element expressed on an orthogonal basis. These arise naturally in [[projections]], which make use of the [[interior product]]. The following table lists the weight left complement for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Left Complement !! Description |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\underline{\mathbf p_\smash{\unicode{x25CB}}} = -p_w \mathbf e_{321}$$ | style="padding: 12px;" | Plane at infinity. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\underline{\boldsymbol l_\smash{\unicode{x25CB}}} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ | style="padding: 12px;" | Line at infinity perpendicular to line $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\underline{\mathbf g_\smash{\unicode{x25CB}}} = g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3$$ | style="padding: 12px;" | Normal vector, or point at infinity in direction perpendicular to plane $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw}$$ | style="padding: 12px;" | $$\underline{\mathbf Q_\smash{\unicode{x25CB}}} = -Q_{vx} \mathbf e_{23} - Q_{vy} \mathbf e_{31} - Q_{vz} \mathbf e_{12} + Q_{vw}$$ | style="padding: 12px;" | Conventional [[quaternion]] $$\mathbf q = Q_{vx} \mathbf i + Q_{vy} \mathbf j + Q_{vz} \mathbf k + Q_{vw} = (a_x \mathbf i + a_y \mathbf j + a_z \mathbf k)\sin\phi + \cos\phi$$, which is the 3D position-free counterpart of a [[motor]]. The sandwich product $$\mathbf q \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\underline{\mathbf F_\smash{\unicode{x25CB}}} = F_{gx} \mathbf e_1 + F_{gy} \mathbf e_2 + F_{gz} \mathbf e_3 - F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | 3D position-free counterpart of a [[flector]] having the form $$\mathbf f = (a_x \mathbf e_1 + a_y \mathbf e_2 + a_z \mathbf e_3)\cos\phi + \mathbf e_{123}\sin\phi$$. The sandwich product $$-\mathbf f \mathbin{\unicode{x27D1}} \mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde f}$$ rotates the vector $$\mathbf u$$ through the angle $$2\phi$$ about the axis $$\mathbf a$$ and reflects it along the direction of $$\mathbf a$$. |} == See Also == * [[Duality]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] dc691cbe79489d059ddf7bba23974ca696dace63 229 225 2023-10-23T06:07:35Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf x$$ has a ''right complement'', which we denote by $$\overline{\mathbf x}$$, that satisfies the equation :$$\mathbf x \wedge \overline{\mathbf x} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf x}$$, that satisfies the equation :$$\underline{\mathbf x} \wedge \mathbf x = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf x} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}\,\overline{\mathbf x}$$ . This shows that the left and right complements of an element $$\mathbf x$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf x)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf x)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf x}} = \mathbf x$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf x \vee \overline{\mathbf x} = \mathbf 1$$ :$$\underline{\mathbf x} \vee\mathbf x = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|900px]] == See Also == * [[Duality]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] 36802ca59e4e6a1cb9e288cfbf1d5cc0c061586c 232 229 2023-10-23T07:02:30Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|900px]] == See Also == * [[Duality]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] 8730531e134b6cf7353a5dc591e488dc8ec6d960 Main Page 0 1 226 169 2023-10-19T01:28:39Z Eric Lengyel 1 /* Pages */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf x$$, denoted by $$\operatorname{gr}(\mathbf x)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf x$$. Denoted by $$\operatorname{ag}(\mathbf x)$$, the antigrade of $$\mathbf x$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Commutators]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] 61430f6615bfb5486a7c3d043edf6b9a362523de File:Complements.svg 6 42 230 44 2023-10-23T06:54:33Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Complements.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 231 230 2023-10-23T07:01:04Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Complements.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Bulk and weight 0 6 233 8 2023-10-23T07:15:32Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the antimetric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] 409ee89bb411c7874fe7e6ee12a0ba1ca75aab51 234 233 2023-10-23T07:15:52Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the metric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] b0b08f02c9bc5fd0a74e664c33d01a4c41188780 Attitude 0 5 236 6 2023-10-23T07:20:09Z Eric Lengyel 1 wikitext text/x-wiki The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as :$$\operatorname{att}(\mathbf u) = \mathbf u \vee \overline{\mathbf e_4}$$ . The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector. The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Attitude |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ |} 7df5a10770f69921e6956ec8d5eeb5591197bcac Geometric norm 0 38 237 177 2023-10-23T07:23:09Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by :$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == See Also == * [[Geometric property]] 7c0a8edcb3310676d65598699758efe8aa29597a Geometric constraint 0 40 238 178 2023-10-23T07:24:10Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ . The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements&mdash;they all possess the geometric property. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] b73657111716cab3a28893514c3d4a6ad23b8239 Join and meet 0 11 240 239 2023-10-23T07:31:33Z Eric Lengyel 1 wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_connect_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_connect_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px;" | [[Image:plane_connect_line.svg|250px]] |} == See Also == * [[Exterior products]] 53446184664d8ba10283339e9997c313dcad293a 248 240 2023-10-26T20:34:27Z Eric Lengyel 1 wikitext text/x-wiki The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description || Illustration |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. | style="padding: 12px;" | [[Image:point_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$. Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$. | style="padding: 12px;" | [[Image:line_join_point.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect. Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel. | style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$ | style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$. Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$. | style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &-p_wg_x \mathbf e_{41} - p_wg_y \mathbf e_{42} - p_wg_z \mathbf e_{43} \\ +\, &(p_zg_y - p_yg_z)\,\mathbf e_{23} + (p_xg_z - p_zg_x)\,\mathbf e_{31} + (p_yg_x - p_xg_y)\,\mathbf e_{12}\end{split}$$ | style="padding: 12px;" | Line containing point $$\mathbf p$$ and perpendicular to plane $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:plane_connect_point.svg|200px]] |- | style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606} =\, &-p_w l_{vx} \mathbf e_{423} - p_w l_{vy} \mathbf e_{431} - p_w l_{vz} \mathbf e_{412} \\ +\, &(p_x l_{vx} + p_y l_{vy} + p_z l_{vz})\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing point $$\mathbf p$$ and perpendicular to line $$\boldsymbol l$$. | style="padding: 12px; text-align: center;" | [[Image:line_connect_point.svg|200px]] |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606} =\, &(l_{vy} g_z - l_{vz} g_y)\,\mathbf e_{423} + (l_{vz} g_x - l_{vx} g_z)\,\mathbf e_{431} + (l_{vx} g_y - l_{vy} g_x)\,\mathbf e_{412} \\ -\, &(l_{mx} g_x + l_{my} g_y + l_{mz} g_z)\,\mathbf e_{321}\end{split}$$ | style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and perpendicular to plane $$\mathbf g$$. Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$. | style="padding: 12px; text-align: center;" | [[Image:plane_connect_line.svg|200px]] |} == See Also == * [[Exterior products]] 5c8e034717d6e173a6c2a37f892c46db0d059da4 File:Plane connect point.svg 6 154 241 2023-10-23T07:31:53Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line connect point.svg 6 155 242 2023-10-23T07:32:06Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Plane connect line.svg 6 156 243 2023-10-23T07:32:18Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Main Page 0 1 244 226 2023-10-23T07:34:00Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Commutators]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] 9f6cea0ca66d981322e46c3c45287cfcbbffbf47 250 244 2023-12-02T08:30:19Z Eric Lengyel 1 /* Products and other binary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Dot products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] f12a5d0d1d996a2249798798e009bdde7419522f 271 250 2024-01-22T07:58:10Z Eric Lengyel 1 /* Products and other binary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Geometric products]] * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] d1cc9c21e37065e32de27d6afb0076ea18d20d93 279 271 2024-01-23T02:09:20Z Eric Lengyel 1 /* Products and other binary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric property]] * [[Unitization]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] bcbd38631c0971ca29c0d3c8d01cac43dfc7376c 292 279 2024-02-09T00:59:18Z Eric Lengyel 1 /* Various properties and unary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Reverses]] * [[Bulk and weight]] * [[Attitude]] * [[Duality]] * [[Geometric norm]] * [[Geometric constraint]] * [[Unitization]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] e8f33e6c891e7d9134f4150d341c592b1ca30b62 Dot products 0 67 245 176 2023-10-23T07:35:22Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix, and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. The following Cayley table shows the dot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:DotProduct.svg|720px]] == Antidot product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ metric anti-exomorphism matrix. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . The following Cayley table shows the antidot products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntidotProduct.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] bec1dc2fe0d4fd8c022ea778486eace29964117d 263 245 2024-01-21T22:02:14Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix, and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. == Antidot Product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ metric antiexomorphism matrix. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . == Table == The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero. [[Image:Dots.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] 020532a650ad171d0491d71b7b332b414ce9aae1 Magnitude 0 24 249 140 2023-11-25T08:12:17Z Eric Lengyel 1 wikitext text/x-wiki A ''magnitude'' is a quantity that represents a concrete measurement of some kind. In rigid geometric algebra, a magnitude $$\mathbf z$$ is composed of two components, a scalar and an antiscalar, as follows: :$$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ Magnitudes are homogeneous just like everything else in a projective geometric algebra. This means it has both a [[bulk]] and a [[weight]], and it is [[unitized]] by making the magnitude of its weight one. === Examples === * The [[geometric norm]] produces a magnitude that gives the perpendicular distance between an object and the origin. This is also half the distance that the origin is moved by an object used as an operator. * [[Euclidean distances]] between objects are expressed as magnitudes given by the sum of the [[bulk norm]] and [[weight norm]] of expressions involving [[attitudes]]. * Exponentiating the magnitude $$\delta\mathbf 1 + \phi {\large\unicode{x1d7d9}}$$ produces a [[motor]] for which $$\delta/\phi$$ is the pitch of the screw transformation. == See Also == * [[Geometric norm]] * [[Unitization]] 2e7e893e083b0ab25bb8cba664a6a906bc887874 Reverses 0 58 252 60 2024-01-10T00:49:36Z Eric Lengyel 1 wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by :$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ . Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ . The reverse and antireverse of any element $$\mathbf x$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ , where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|820px]] == See Also == * [[Complements]] 8e47ad7c3629a14ea11126d6c4050166f9f1333c 275 252 2024-01-22T08:01:34Z Eric Lengyel 1 wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf x$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf x$$, which we denote by $$\mathbf{\tilde x}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{234}$$ is $$\mathbf e_4 \wedge \mathbf e_3 \wedge \mathbf e_2$$, which we would write as $$-\mathbf e_{234}$$since 432 is an odd permutation of 234. In general, the reverse of an element $$\mathbf x$$ is given by :$$\mathbf{\tilde x} = (-1)^{\operatorname{gr}(\mathbf x)(\operatorname{gr}(\mathbf x) - 1)/2}\,\mathbf x$$ . Symmetrically, for any element $$\mathbf x$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf x$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf x$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{ag}(\mathbf x)(\operatorname{ag}(\mathbf x) - 1)/2}\,\mathbf x$$ . The reverse and antireverse of any element $$\mathbf x$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{x}}} = (-1)^{\operatorname{gr}(\mathbf x)\operatorname{ag}(\mathbf x)}(-1)^{n(n-1)/2}\,\mathbf{\tilde x}$$ , where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|720px]] == See Also == * [[Complements]] c42c9b3531f85909f47db12941dfacaba9fd3cbe 286 275 2024-02-01T06:51:08Z Eric Lengyel 1 wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by :$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ . Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ . The reverse and antireverse of any element $$\mathbf u$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ , where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|720px]] == See Also == * [[Complements]] b077d05f9bf66d3e40aa0d171815fc71b68ddd57 Rigid Geometric Algebra for 2D Space 0 19 253 207 2024-01-10T08:18:42Z Eric Lengyel 1 /* Flectors */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line. 45f3ced633bdadae34425458b0574a0ea773e788 285 253 2024-01-23T02:12:11Z Eric Lengyel 1 /* Geometric Products */ wikitext text/x-wiki == Introduction == [[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]] In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1. There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions. There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ . There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents. Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents. __TOC__ <br clear="right" /> == Unary Operations == The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table. [[Image:Unary201.svg|480px]] == Geometric Products == The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. [[Image:GeometricProduct201.svg|360px]] The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$. [[Image:GeometricAntiproduct201.svg|360px]] == Points == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ . The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$. When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself. If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. == Lines == In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ . The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$. When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself. If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space. == Bulk and Weight == The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |} == Unitization == The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$p_z^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$ |} == Geometric Norm == The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$ |} The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$ |} The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == Join and Meet == The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points and lines appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$ :$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ :$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$ The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects. {| class="wikitable" ! Formula || Description |- | style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$ | style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$. Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |- | style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$ | style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect. Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel. |- | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$ | style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$. |} == Projections == The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas. {| class="wikitable" ! Formula !! Description |- | style="padding: 12px;" | $$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$ | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$. |- | style="padding: 12px;" | $$\left(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$ | style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$. |} Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin. :$$\left(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$ Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$. :$$\left(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$ == Motors == The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form :$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ . A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$. A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ . == Flectors == The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form :$$\mathbf F = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w \mathbf 1$$ . A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line. df8e11003fa41431200874993f95f28c76388e93 File:Basis.svg 6 2 254 3 2024-01-21T21:43:19Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Basis.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:WedgeProduct.svg 6 71 255 73 2024-01-21T21:47:26Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:WedgeProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 280 255 2024-01-23T02:09:46Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:WedgeProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:AntiwedgeProduct.svg 6 72 256 74 2024-01-21T21:48:10Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:AntiwedgeProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 281 256 2024-01-23T02:10:02Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:AntiwedgeProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Exterior products 0 73 257 75 2024-01-21T21:51:04Z Eric Lengyel 1 wikitext text/x-wiki The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.) == Exterior Product == The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product. The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have :$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$ for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship :$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ . The wedge product adds the [[grades]] of its operands, so we have :$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ . The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. <span style="font-size: 150%;">Wedge Product $$\mathbf a \wedge \mathbf b$$</span> [[Image:WedgeProduct.svg|720px]] == Exterior Antiproduct == The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product. Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have :$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ . The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. <span style="font-size: 150%;">Antiwedge Product $$\mathbf a \vee \mathbf b$$</span> [[Image:AntiwedgeProduct.svg|720px]] == De Morgan Laws == There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$ :$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$ :$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$ :$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$ == General Properties == The following table lists several general properties of the wedge product and antiwedge product. {| class="wikitable" ! Property !! Description |- | style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$ | style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$ | style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$ | style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$ | style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the wedge product. |- | style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the antiwedge product. |- | style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$ | style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$ | style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \wedge t = st$$ | style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$. |- | style="padding: 12px;" | $$s \vee t = st$$ | style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$. |} == See Also == * [[Geometric products]] * [[Dot products]] * [[Complements]] b5d37eb93c75e4fc285828200e731694d77dd981 282 257 2024-01-23T02:10:22Z Eric Lengyel 1 wikitext text/x-wiki The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.) == Exterior Product == The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product. The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have :$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$ for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship :$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ . The wedge product adds the [[grades]] of its operands, so we have :$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ . The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:WedgeProduct.svg|720px]] == Exterior Antiproduct == The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product. Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have :$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ . The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntiwedgeProduct.svg|720px]] == De Morgan Laws == There are many possible exterior products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$ :$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$ :$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$ :$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$ == General Properties == The following table lists several general properties of the wedge product and antiwedge product. {| class="wikitable" ! Property !! Description |- | style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$ | style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$ | style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$ | style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$ | style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the wedge product. |- | style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the antiwedge product. |- | style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$ | style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$ | style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \wedge t = st$$ | style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$. |- | style="padding: 12px;" | $$s \vee t = st$$ | style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$. |} == See Also == * [[Geometric products]] * [[Dot products]] * [[Complements]] 6b5584771d86941f2fe4d4e3a2e84f9b6f2c59d3 File:GeometricProduct.svg 6 74 258 193 2024-01-21T21:54:01Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 276 258 2024-01-23T02:07:34Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricProduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct.svg 6 75 259 194 2024-01-21T21:54:21Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 277 259 2024-01-23T02:08:01Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Geometric products 0 76 260 195 2024-01-21T21:54:31Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells colored yellow correspond to the contribution from the [[wedge product]]. <span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span> [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells colored yellow correspond to the contribution from the [[antiwedge product]]. <span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span> [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] 35b0cd3a2ca8b68172df1ee6a555e30136ea1eef 261 260 2024-01-21T21:55:08Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells highlighted in green correspond to the contribution from the [[wedge product]]. <span style="font-size: 150%;">Geometric Product $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$</span> [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells highlighted in green correspond to the contribution from the [[antiwedge product]]. <span style="font-size: 150%;">Geometric Antiproduct $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$</span> [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] ecc7bf7a28f0f26a79acf2c59ea5a4834c7c11eb 278 261 2024-01-23T02:08:21Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells highlighted in green correspond to the contribution from the [[wedge product]]. [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells highlighted in green correspond to the contribution from the [[antiwedge product]]. [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == There are many possible geometric products and antiproducts. The signs of the results they produce differ in grade-dependent ways, but are otherwise equivalent. The relationship between the product and antiproduct is fixed by a specific choice of dualization function that exchanges full and empty dimensions. We choose the left and right [[complements]] as the dualization function and its inverse. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] c1c05f2a79f6cbf8903ee06b29158991cba416ff File:Dots.svg 6 157 262 2024-01-21T21:59:08Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Constractions.svg 6 158 264 2024-01-22T07:35:53Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Expansions.svg 6 159 265 2024-01-22T07:36:08Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Interior products 0 70 266 72 2024-01-22T07:56:36Z Eric Lengyel 1 wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode{x25CB}} \mathbf b) \vee \mathbf 1$$ . The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode{x25CF}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == See Also == * [[Projections]] 1a82bb2b75365b3466924db71ff955bcba51fcf5 Weight expansion 0 160 267 2024-01-22T07:57:19Z Eric Lengyel 1 Created page with "#REDIRECTION [[Interior products]]" wikitext text/x-wiki #REDIRECTION [[Interior products]] 0d596946a23ad1497e9fa8b22629a02b5af6ca7c Bulk expansion 0 161 268 2024-01-22T07:57:28Z Eric Lengyel 1 Created page with "#REDIRECTION [[Interior products]]" wikitext text/x-wiki #REDIRECTION [[Interior products]] 0d596946a23ad1497e9fa8b22629a02b5af6ca7c Bulk contraction 0 162 269 2024-01-22T07:57:35Z Eric Lengyel 1 Created page with "#REDIRECTION [[Interior products]]" wikitext text/x-wiki #REDIRECTION [[Interior products]] 0d596946a23ad1497e9fa8b22629a02b5af6ca7c Weight contraction 0 163 270 2024-01-22T07:57:48Z Eric Lengyel 1 Created page with "#REDIRECTION [[Interior products]]" wikitext text/x-wiki #REDIRECTION [[Interior products]] 0d596946a23ad1497e9fa8b22629a02b5af6ca7c File:Reverses.svg 6 57 272 59 2024-01-22T08:00:05Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Reverses.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Complements.svg 6 42 273 231 2024-01-22T08:01:07Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Complements.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Complements 0 41 274 232 2024-01-22T08:01:26Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] == See Also == * [[Duality]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] 9b78a59c59fd78a8a30a527955989e4fcb76a0da File:GeometricProduct201.svg 6 22 283 196 2024-01-23T02:11:34Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricProduct201.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:GeometricAntiproduct201.svg 6 23 284 197 2024-01-23T02:11:59Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:GeometricAntiproduct201.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Rotation 0 30 287 220 2024-02-07T23:37:56Z Eric Lengyel 1 wikitext text/x-wiki A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$. == Calculation == The exact rotation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)p_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})p_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})p_z + 2(R_{vy}R_{mz} - R_{vz}R_{my} + R_{vw}R_{mx})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)p_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})p_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})p_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} + R_{vw}R_{my})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)p_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})p_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})p_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} + R_{vw}R_{mz})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)l_{vx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{vy} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)l_{vy} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{vz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)l_{vz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{vx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(R_{vy}R_{my} + R_{vz}R_{mz})l_{vx} + 2(R_{vy}R_{mx} + R_{vx}R_{my} - R_{vw}R_{mz})l_{vy} + 2(R_{vz}R_{mx} + R_{vx}R_{mz} + R_{vw}R_{my})l_{vz} + (1 - 2R_{vy}^2 - 2R_{vz}^2)l_{mx} + 2(R_{vx}R_{vy} - R_{vz}R_{vw})l_{my} + 2(R_{vz}R_{vx} + R_{vy}R_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(R_{vz}R_{mz} + R_{vx}R_{mx})l_{vy} + 2(R_{vz}R_{my} + R_{vy}R_{mz} - R_{vw}R_{mx})l_{vz} + 2(R_{vx}R_{my} + R_{vy}R_{mx} + R_{vw}R_{mz})l_{vx} + (1 - 2R_{vz}^2 - 2R_{vx}^2)l_{my} + 2(R_{vy}R_{vz} - R_{vx}R_{vw})l_{mz} + 2(R_{vx}R_{vy} + R_{vz}R_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(R_{vx}R_{mx} + R_{vy}R_{my})l_{vz} + 2(R_{vx}R_{mz} + R_{vz}R_{mx} - R_{vw}R_{my})l_{vx} + 2(R_{vy}R_{mz} + R_{vz}R_{my} + R_{vw}R_{mx})l_{vy} + (1 - 2R_{vx}^2 - 2R_{vy}^2)l_{mz} + 2(R_{vz}R_{vx} - R_{vy}R_{vw})l_{mx} + 2(R_{vy}R_{vz} + R_{vx}R_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{R}}} =\, &\left[(1 - 2R_{vy}^2 - 2R_{vz}^2)g_x + 2(R_{vx}R_{vy} - R_{vz}R_{vw})g_y + 2(R_{vz}R_{vx} + R_{vy}R_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{vz}^2 - 2R_{vx}^2)g_y + 2(R_{vy}R_{vz} - R_{vx}R_{vw})g_z + 2(R_{vx}R_{vy} + R_{vz}R_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{vx}^2 - 2R_{vy}^2)g_z + 2(R_{vz}R_{vx} - R_{vy}R_{vw})g_x + 2(R_{vy}R_{vz} + R_{vx}R_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(R_{vy}R_{mz} - R_{vz}R_{my} - R_{vw}R_{mx})g_x + 2(R_{vz}R_{mx} - R_{vx}R_{mz} - R_{vw}R_{my})g_y + 2(R_{vx}R_{my} - R_{vy}R_{mx} - R_{vw}R_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Reciprocal rotation]] * [[Translation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 12e843d68123d88063207a5e4d18ca004bc16fa5 Translation 0 31 288 221 2024-02-08T00:52:02Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{1}{2}\delta \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & \tau_x \\ 0 & 1 & 0 & \tau_y \\ 0 & 0 & 1 & \tau_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Reciprocal translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 4567cccfe5ed9a00f653c7a29f3b32ced32ec965 Geometric constraint 0 40 291 238 2024-02-09T00:59:08Z Eric Lengyel 1 Eric Lengyel moved page [[Geometric property]] to [[Geometric constraint]] without leaving a redirect wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric property'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ . The set of all elements possessing the geometric property is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ to possess the geometric property. Points and planes do not have any requirements&mdash;they all possess the geometric property. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] b73657111716cab3a28893514c3d4a6ad23b8239 293 291 2024-02-09T01:00:39Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ . The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements&mdash;they have no constraints. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] 2ef572f8fde95ca67accecc5154b10ca46928a44 Geometric norm 0 38 294 237 2024-02-09T01:00:58Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by :$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == See Also == * [[Geometric constraint]] 7067c298285bde6497183995bae24816695742f2 Line 0 7 295 9 2024-02-09T01:01:26Z Eric Lengyel 1 wikitext text/x-wiki [[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation :$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ , which means that, when regarded as vectors, the direction and moment of a line are perpendicular. The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction. When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself. <br clear="right" /> == Lines at Infinity == [[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]] If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]]. When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$. <br clear="right" /> == Skew Lines == [[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]] Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line :$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$ and then orthogonalizing its direction and moment to obtain :$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ , where :$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ . If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$. The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function. <br clear="right" /> == See Also == * [[Point]] * [[Plane]] 6251f6ff4a6d14c06715178fd5f29a1c32228d6c Motor 0 3 296 172 2024-02-09T01:01:44Z Eric Lengyel 1 wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)p_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})p_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})p_z + 2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vw}Q_{mx} - Q_{vx}Q_{mw})p_w\right]\mathbf e_1 \\ +\, &\left[(1 - 2Q_{vz}^2 -2Q_{vx}^2))p_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})p_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})p_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vw}Q_{my} - Q_{vy}Q_{mw})p_w\right]\mathbf e_2 \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2))p_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})p_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})p_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vw}Q_{mz} - Q_{vz}Q_{mw})p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{vx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{vy} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{vy} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{vz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{vz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{vx} + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(Q_{vy}Q_{my} + Q_{vz}Q_{mz})l_{vx} + 2(Q_{vy}Q_{mx} + Q_{vx}Q_{my} - Q_{vz}Q_{mw} - Q_{vw}Q_{mz})l_{vy} + 2(Q_{vz}Q_{mx} + Q_{vx}Q_{mz} + Q_{vy}Q_{mw} + Q_{vw}Q_{my})l_{vz} + (1 - 2Q_{vy}^2 - 2Q_{vz}^2)l_{mx} + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})l_{my} + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(Q_{vz}Q_{mz} + Q_{vx}Q_{mx})l_{vy} + 2(Q_{vz}Q_{my} + Q_{vy}Q_{mz} - Q_{vx}Q_{mw} - Q_{vw}Q_{mx})l_{vz} + 2(Q_{vx}Q_{my} + Q_{vy}Q_{mx} + Q_{vz}Q_{mw} + Q_{vw}Q_{mz})l_{vx} + (1 - 2Q_{vz}^2 - 2Q_{vx}^2)l_{my} + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})l_{mz} + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(Q_{vx}Q_{mx} + Q_{vy}Q_{my})l_{vz} + 2(Q_{vx}Q_{mz} + Q_{vz}Q_{mx} - Q_{vy}Q_{mw} - Q_{vw}Q_{my})l_{vx} + 2(Q_{vy}Q_{mz} + Q_{vz}Q_{my} + Q_{vx}Q_{mw} + Q_{vw}Q_{mx})l_{vy} + (1 - 2Q_{vx}^2 - 2Q_{vy}^2)l_{mz} + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})l_{mx} + 2(Q_{vy}Q_{vz} + 2Q_{vx}Q_{vw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf Q \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}} =\, &\left[(1 - 2Q_{vy}^2 - 2Q_{vz}^2)g_x + 2(Q_{vx}Q_{vy} - Q_{vz}Q_{vw})g_y + 2(Q_{vz}Q_{vx} + Q_{vy}Q_{vw})g_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2Q_{vz}^2 - 2Q_{vx}^2)g_y + 2(Q_{vy}Q_{vz} - Q_{vx}Q_{vw})g_z + 2(Q_{vx}Q_{vy} + Q_{vz}Q_{vw})g_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2Q_{vx}^2 - 2Q_{vy}^2)g_z + 2(Q_{vz}Q_{vx} - Q_{vy}Q_{vw})g_x + 2(Q_{vy}Q_{vz} + Q_{vx}Q_{vw})g_y\right]\mathbf e_{412} \\ +\, &\left[2(Q_{vy}Q_{mz} - Q_{vz}Q_{my} + Q_{vx}Q_{mw} - Q_{vw}Q_{mx})g_x + 2(Q_{vz}Q_{mx} - Q_{vx}Q_{mz} + Q_{vy}Q_{mw} - Q_{vw}Q_{my})g_y + 2(Q_{vx}Q_{my} - Q_{vy}Q_{mx} + Q_{vz}Q_{mw} - Q_{vw}Q_{mz})g_z + g_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 264ed79ff2162067af36347a70e79f5081c2b77e 311 296 2024-04-08T05:01:32Z Eric Lengyel 1 /* Motor Transformations */ wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 6c8179398acc09d4afdb8cebb0e4841e35ce5c8e Flector 0 44 297 46 2024-02-09T01:02:05Z Eric Lengyel 1 wikitext text/x-wiki [[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation :$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ , and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$. An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$. == Norm == The [[bulk norm]] of a flector $$\mathbf F$$ is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ . The [[geometric norm]] of a flector $$\mathbf F$$ is thus :$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$. == Trigonometric Form == A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as :$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ . This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane. == Factorization == Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ , where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ , which is always unitized. The original flector $$\mathbf F$$ can now be expressed as :$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ . == Conversion from Flector to Matrix == Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices :$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Flector == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$ :$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$ :$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$ :$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$ :$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$ :$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$ :$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$ :$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$ :$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$ If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate :$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ , where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by $$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$ $$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$ $$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$ $$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ . == Flector Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x + 2(F_{gz}F_{pw} - F_{gx}F_{gy})q_y - 2(F_{gy}F_{pw} + F_{gz}F_{gx})q_z + 2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{px}F_{pw} - F_{gx}F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y + 2(F_{gx}F_{pw} - F_{gy}F_{gz})q_z - 2(F_{gz}F_{pw} + F_{gx}F_{gy})q_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{py}F_{pw} - F_{gy}F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z + 2(F_{gy}F_{pw} - F_{gz}F_{gx})q_x - 2(F_{gx}F_{pw} + F_{gy}F_{gz})q_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{pz}F_{pw} - F_{gz}F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2(F_{gx}F_{gy} - F_{gz}F_{pw})l_{vy} + 2(F_{gz}F_{gx} + F_{gy}F_{pw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2(F_{gy}F_{gz} - F_{gx}F_{pw})l_{vz} + 2(F_{gx}F_{gy} + F_{gz}F_{pw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2(F_{gz}F_{gx} - F_{gy}F_{pw})l_{vx} + 2(F_{gy}F_{gz} + F_{gx}F_{pw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy}F_{py} + F_{gz}F_{pz})l_{vx} + 2(F_{gx}F_{py} + F_{gy}F_{px})l_{vy} + 2(F_{gx}F_{pz} + F_{gz}F_{px} + F_{gy}F_{gw} + F_{py}F_{pw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} + 2(F_{gz}F_{pw} - F_{gx}F_{gy})l_{my} - 2(F_{gy}F_{pw} + F_{gz}F_{gx})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz}F_{pz} + F_{gx}F_{px})l_{vy} + 2(F_{gy}F_{pz} + F_{gz}F_{py})l_{vz} + 2(F_{gy}F_{px} + F_{gx}F_{py} + F_{gz}F_{gw} + F_{pz}F_{pw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} + 2(F_{gx}F_{pw} - F_{gy}F_{gz})l_{mz} - 2(F_{gz}F_{pw} + F_{gx}F_{gy})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx}F_{px} + F_{gy}F_{py})l_{vz} + 2(F_{gz}F_{px} + F_{gx}F_{pz})l_{vx} + 2(F_{gz}F_{py} + F_{gy}F_{pz} + F_{gx}F_{gw} + F_{px}F_{pw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} + 2(F_{gy}F_{pw} - F_{gz}F_{gx})l_{mx} - 2(F_{gx}F_{pw} + F_{gy}F_{gz})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2(F_{gx}F_{gy} - F_{gz}F_{pw})h_y + 2(F_{gz}F_{gx} + F_{gy}F_{pw})h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2(F_{gy}F_{gz} - F_{gx}F_{pw})h_z + 2(F_{gx}F_{gy} + F_{gz}F_{pw})h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2(F_{gz}F_{gx} - F_{gy}F_{pw})h_x + 2(F_{gy}F_{gz} + F_{gx}F_{pw})h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy}F_{pz} - F_{gz}F_{py} + F_{gx}F_{gw} - F_{px}F_{pw})h_x + 2(F_{gz}F_{px} - F_{gx}F_{pz} + F_{gy}F_{gw} - F_{py}F_{pw})h_y + 2(F_{gx}F_{py} - F_{gy}F_{px} + F_{gz}F_{gw} - F_{pz}F_{pw})h_z - h_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Motor]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 131435136a84913c11d4265df03b8cb0fee35f84 312 297 2024-04-08T05:12:10Z Eric Lengyel 1 /* Flector Transformations */ wikitext text/x-wiki [[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation :$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ , and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$. An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$. == Norm == The [[bulk norm]] of a flector $$\mathbf F$$ is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ . The [[geometric norm]] of a flector $$\mathbf F$$ is thus :$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$. == Trigonometric Form == A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as :$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ . This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane. == Factorization == Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ , where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ , which is always unitized. The original flector $$\mathbf F$$ can now be expressed as :$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ . == Conversion from Flector to Matrix == Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices :$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Flector == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$ :$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$ :$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$ :$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$ :$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$ :$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$ :$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$ :$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$ :$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$ If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate :$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ , where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by $$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$ $$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$ $$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$ $$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ . == Flector Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$ $$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$ $$q'_w = -q_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$ $$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$ $$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$ $$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$ $$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$ |} == See Also == * [[Motor]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 92941f83ae7e15aad3d6b24c1919075ae3cd1ae3 Transflection 0 27 298 29 2024-02-09T01:03:00Z Eric Lengyel 1 wikitext text/x-wiki A ''transflection'' is an improper isometry of Euclidean space consisting of a [[reflection]] through a plane and a [[translation]] parallel to the same plane. All combinations of a reflection and a translation, even if the original translation vector is not parallel to the original reflection plane, can be formulated as a transflection with respect to some plane. The specific kind of [[flector]] :$$\mathbf F = F_{px} \mathbf e_{1} + F_{py} \mathbf e_{2} + F_{pz} \mathbf e_{3} + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , in which $$F_{pw} = 0$$, performs a reflection through the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ and a translation by twice the displacement vector given by the cross product $$(F_{gx}, F_{gy}, F_{gz}) \times (F_{px}, F_{py}, F_{pz})$$. To satisfy the [[geometric constraint]], we must have $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} = 0$$, so the vector $$(F_{px}, F_{py}, F_{pz})$$ and the displacement vector are both parallel to the plane $$\mathbf g$$. == Calculation == The exact transflection calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(2F_{gy}^2 + 2F_{gz}^2 - 1)q_x - 2F_{gx} F_{gy} q_y - 2F_{gz} F_{gx} q_z + 2(F_{gy} F_{pz} - F_{gz} F_{py} - F_{gx} F_{gw})q_w\right]\mathbf e_1 \\ +\, &\left[(2F_{gz}^2 + 2F_{gx}^2 - 1)q_y - 2F_{gy} F_{gz} q_z - 2F_{gx} F_{gy} q_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} - F_{gy} F_{gw})q_w\right]\mathbf e_2 \\ +\, &\left[(2F_{gx}^2 + 2F_{gy}^2 - 1)q_z - 2F_{gz} F_{gx} q_x - 2F_{gy} F_{gz} q_y + 2(F_{gx} F_{py} - F_{gy} F_{px} - F_{gz} F_{gw})q_w\right]\mathbf e_3 \\ +\, &q_w\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)l_{vx} + 2F_{gx} F_{gy} l_{vy} + 2 F_{gz} F_{gx} l_{vz}\right]\mathbf e_{41} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)l_{vy} + 2F_{gy} F_{gz} l_{vz} + 2F_{gx} F_{gy} l_{vx}\right]\mathbf e_{42} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)l_{vz} + 2F_{gz} F_{gx} l_{vx} + 2F_{gy} F_{gz} l_{vy}\right]\mathbf e_{43} \\ +\, &\left[-4(F_{gy} F_{py} + F_{gz} P_{pz})l_{vx} + 2(F_{gx} F_{py} + F_{gy} F_{px})l_{vy} + 2(F_{gx} F_{pz} + F_{gz} F_{px} + F_{gy} F_{gw})l_{vz} + (2F_{gy}^2 + 2F_{gz}^2 - 1)l_{mx} - 2F_{gx} F_{gy} l_{my} - 2F_{gz} F_{gx} l_{mz}\right]\mathbf e_{23} \\ +\, &\left[-4(F_{gz} F_{pz} + F_{gx} F_{px})l_{vy} + 2(F_{gy} F_{pz} + F_{gz} F_{py})l_{vz} + 2(F_{gy} F_{px} + F_{gx} F_{py} + F_{gz} F_{gw})l_{vx} + (2F_{gz}^2 + 2F_{gx}^2 - 1)l_{my} - 2F_{gy} F_{gz} l_{mz} - 2F_{gx} F_{gy} l_{mx}\right]\mathbf e_{31} \\ +\, &\left[-4(F_{gx} F_{px} + F_{gy} F_{py})l_{vz} + 2(F_{gz} F_{px} + F_{gx} F_{pz})l_{vx} + 2(F_{gz} F_{py} + F_{gy} F_{pz} + F_{gx} F_{gw})l_{vy} + (2F_{gx}^2 + 2F_{gy}^2 - 1)l_{mz} - 2F_{gz} F_{gx} l_{mx} - 2F_{gy} F_{gz} l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf F \mathbin{\unicode{x27C7}} \mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}} =\, &\left[(1 - 2F_{gy}^2 - 2F_{gz}^2)h_x + 2F_{gx} F_{gy} h_y + 2F_{gz} F_{gx} h_z\right]\mathbf e_{423} \\ +\, &\left[(1 - 2F_{gz}^2 - 2F_{gx}^2)h_y + 2F_{gy} F_{gz} h_z + 2F_{gx} F_{gy} h_x\right]\mathbf e_{431} \\ +\, &\left[(1 - 2F_{gx}^2 - 2F_{gy}^2)h_z + 2F_{gz} F_{gx} h_x + 2F_{gy} F_{gz} h_y\right]\mathbf e_{412} \\ +\, &\left[2(F_{gy} F_{pz} - F_{gz} F_{py} + F_{gx} F_{gw})h_x + 2(F_{gz} F_{px} - F_{gx} F_{pz} + F_{gy} F_{gw})h_y + 2(F_{gx} F_{py} - F_{gy} F_{px} + F_{gz} F_{gw})h_z - h_w\right]\mathbf e_{321}\end{split}$$ |} == See Also == * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] 86796d311bfd5578d4973527a806b23bfa1c313c Complement translation 0 34 299 223 2024-02-28T02:57:17Z Eric Lengyel 1 /* Example */ wikitext text/x-wiki __NOTOC__ A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space. The specific kind of [[reciprocal motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{31} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{42} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact reciprocal translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reciprocal Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Reciprocal Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Reciprocal rotation]] * [[Reciprocal reflection]] ef605cb13d490f0f0b98c6ea6c97e403b05149aa 300 299 2024-02-28T03:00:01Z Eric Lengyel 1 Undo revision 299 by [[Special:Contributions/Eric Lengyel|Eric Lengyel]] ([[User talk:Eric Lengyel|talk]]) wikitext text/x-wiki __NOTOC__ A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space. The specific kind of [[reciprocal motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact reciprocal translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reciprocal Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Reciprocal Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Reciprocal rotation]] * [[Reciprocal reflection]] 84acb84893568b0e2552daae39f7b6271c18ff73 File:Point.svg 6 80 301 82 2024-04-05T06:02:00Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Point.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Point 0 81 302 83 2024-04-05T06:02:32Z Eric Lengyel 1 wikitext text/x-wiki [[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric constraint]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$. When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself. A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by :$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ . == Points at Infinity == If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. <br clear="right" /> == See Also == * [[Line]] * [[Plane]] c5773f4b43d9f01a2c2f14d99c6519a4a59c5e93 File:Plane.svg 6 60 303 62 2024-04-05T06:02:54Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Plane.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Plane 0 61 304 63 2024-04-05T06:03:06Z Eric Lengyel 1 wikitext text/x-wiki [[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric constraint]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal. When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself. A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by :$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ . == Plane at Infinity == If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space. <br clear="right" /> == See Also == * [[Point]] * [[Line]] bc898be62b5afeb98897f1b75edb0de508a1a246 File:Line.svg 6 8 305 10 2024-04-05T06:03:28Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Line.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Line infinity.svg 6 9 306 11 2024-04-05T06:03:54Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Line infinity.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Proper isom.svg 6 4 307 5 2024-04-05T06:41:03Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Proper isom.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Improper isom.svg 6 43 308 45 2024-04-05T06:41:47Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Improper isom.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Duality.svg 6 78 309 80 2024-04-05T06:43:01Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Duality.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Groups.svg 6 26 310 191 2024-04-05T06:45:11Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Groups.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Rotation 0 30 313 287 2024-04-08T05:16:19Z Eric Lengyel 1 /* Calculation */ wikitext text/x-wiki A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$. == Calculation == The exact rotation calculations for points, lines, and planes are shown in the following table, where $$\mathbf v = (R_{vx}, R_{vy}, R_{vz})$$ and $$\mathbf m = (R_{mx}, R_{my}, R_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(R_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz}) \cdot \mathbf v - R_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == See Also == * [[Reciprocal rotation]] * [[Translation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 3e8ced7440c1c324d18d9d2f2560c3602853de79 Main Page 0 1 314 292 2024-04-12T06:09:27Z Eric Lengyel 1 /* Various properties and unary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Bulk and weight]] * [[Duals]] * [[Reverses]] * [[Attitude]] * [[Geometric norm]] * [[Geometric constraint]] * [[Unitization]] * [[Duality]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] af81b1e8091e065bf498760bd1b56229fae9733b 324 314 2024-04-13T01:40:30Z Eric Lengyel 1 /* Various properties and unary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Metrics]] * [[Bulk and weight]] * [[Duals]] * [[Reverses]] * [[Attitude]] * [[Geometric norm]] * [[Geometric constraint]] * [[Unitization]] * [[Duality]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] e08e347ea9d96af1d29008d84268c2ee79c19181 Duals 0 164 315 2024-04-12T06:15:10Z Eric Lengyel 1 Created page with "The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \over..." wikitext text/x-wiki The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the extended antimetric tensor. d2586309ac2161c6210ff7ab897b2fa8632f5943 317 315 2024-04-12T06:18:44Z Eric Lengyel 1 wikitext text/x-wiki The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . ef569f87bb517d339a6a6489512d7fed2e13367c 318 317 2024-04-12T06:26:18Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == See Also == * [[Complements]] * [[Bulk and Weight]] 873b8a6e297a12296ad4f01e3a3cee6588a65516 319 318 2024-04-12T06:26:29Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the extended metric tensor. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the extended antimetric tensor. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == See Also == * [[Complements]] * [[Bulk and weight]] 87addf6afa39950f5a2ed22675b8e1a8252e8f02 323 319 2024-04-13T01:36:54Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ metric exomorphism matrix. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ metric antiexomorphism matrix. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == See Also == * [[Complements]] * [[Bulk and weight]] 35d3449ca1d1f03b5f7e011dae9706aa78481636 333 323 2024-04-13T01:54:47Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == See Also == * [[Complements]] * [[Bulk and weight]] 739c40f09f3bb850c1f38b712a2e28a932c29c17 334 333 2024-04-13T05:05:57Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == See Also == * [[Complements]] * [[Bulk and weight]] == In the Book == * Duals are introduced in Section 2.12. 2badc65fbdfb94998e7d635173910198ac9b4a12 Dual 0 165 316 2024-04-12T06:16:16Z Eric Lengyel 1 Redirected page to [[Duals]] wikitext text/x-wiki #REDIRECT [[Duals]] 15f9e5636d77c1786a0220d23ce698f1f4e1bf37 Complements 0 41 320 274 2024-04-12T06:26:50Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] 7310e3206d1928424f221452bee63b2219583ad4 322 320 2024-04-12T20:39:44Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] 32be3b6b79f8b9cc0cd311c094840fb285e9ddc8 335 322 2024-04-13T05:06:42Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] == In the Book == * Complements are introduced in Section 2.2. d8971bfdbdfb940c0f1b836b7becab4d25f39637 Bulk and weight 0 6 321 234 2024-04-12T06:27:02Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the metric exomorphism matrix. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the metric anti-exomorphism matrix. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] * [[Duals]] ff7a233a476323e48732e2bf4e268219e1c63bd9 332 321 2024-04-13T01:54:30Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] * [[Duals]] 83723e37b96aa190afed58123c4fd897dcfe9eca 337 332 2024-04-13T05:08:37Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] * [[Duals]] == In the Book == * Bulk and weight are introduced in Section 2.8.3. 6451f98fe4c49fcb9f7f85de0b4c7dfb3bf0eb8e File:Metric-rga-3d.svg 6 166 325 2024-04-13T01:45:36Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Antimetric-rga-3d.svg 6 167 326 2024-04-13T01:48:12Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Metrics 0 168 327 2024-04-13T01:48:35Z Eric Lengyel 1 Created page with "The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metri..." wikitext text/x-wiki The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:antimetric-rga-3d.svg|420px]] a39cea3da41b1a281b618822e28ff7f86a11e20d 328 327 2024-04-13T01:53:28Z Eric Lengyel 1 wikitext text/x-wiki The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:antimetric-rga-3d.svg|420px]] The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$. The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]]. == See Also == * [[Bulk and weight]] * [[Duals]] * [[Dot products]] 3f7b68fd353ff38750aa13be339c6af1127865c0 336 328 2024-04-13T05:07:45Z Eric Lengyel 1 wikitext text/x-wiki The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:antimetric-rga-3d.svg|420px]] The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$. The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]]. == See Also == * [[Bulk and weight]] * [[Duals]] * [[Dot products]] == In the Book == * The metric and antimetric are introduced in Section 2.8. 5917858ccc7cf88ea76f738254132567c0d87f95 338 336 2024-04-13T05:08:52Z Eric Lengyel 1 /* In the Book */ wikitext text/x-wiki The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:antimetric-rga-3d.svg|420px]] The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$. The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]]. == See Also == * [[Bulk and weight]] * [[Duals]] * [[Dot products]] == In the Book == * The metric and antimetric are introduced in Sections 2.8.1 and 2.8.2. ed54a704a06c8bbbc623b0732dc2b0b40fd752e7 Dot products 0 67 329 263 2024-04-13T01:53:48Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. == Antidot Product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . == Table == The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero. [[Image:Dots.svg|720px]] == See Also == * [[Geometric products]] * [[Wedge products]] 313483ccde15bfc633fbce8dacc41425c8ba6c69 Metric exomorphism matrix 0 169 330 2024-04-13T01:53:59Z Eric Lengyel 1 Redirected page to [[Metrics]] wikitext text/x-wiki #REDIRECT [[Metrics]] fcbe1745c2df4f4d52a418ced4d4c3625afd513f Metric antiexomorphism matrix 0 170 331 2024-04-13T01:54:07Z Eric Lengyel 1 Redirected page to [[Metrics]] wikitext text/x-wiki #REDIRECT [[Metrics]] fcbe1745c2df4f4d52a418ced4d4c3625afd513f Grade and antigrade 0 59 339 61 2024-04-13T05:10:43Z Eric Lengyel 1 wikitext text/x-wiki The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade. The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization. The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ . [[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3. == See Also == * [[Duality]] * [[Complements]] == In the Book == * Grade and antigrade are introduced in Section 2.1.4. 31907a615c2fcd70f548aa77c4966af383cd08a4 Reverses 0 58 340 286 2024-04-13T05:11:32Z Eric Lengyel 1 wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by :$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ . Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ . The reverse and antireverse of any element $$\mathbf u$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ , where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|720px]] == See Also == * [[Complements]] == In the Book == * Reverses and antireverses are introduced in Section 3.4. 495d7a8e74728cba93defadc063d6266a6994ae8 Attitude 0 5 341 236 2024-04-13T05:13:32Z Eric Lengyel 1 wikitext text/x-wiki The attitude function, denoted by $$\operatorname{att}$$, extracts the attitude of a geometry and returns a purely directional object. The attitude function is defined as :$$\operatorname{att}(\mathbf u) = \mathbf u \vee \overline{\mathbf e_4}$$ . The attitude of a [[line]] is the line's direction as a vector, and the attitude of a [[plane]] is the plane's normal as a bivector. The following table lists the attitude for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Attitude |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf z) = y \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf p) = p_w \mathbf 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\operatorname{att}(\boldsymbol l) = l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\operatorname{att}(\mathbf g) = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ |} == In the Book == * The attitude is discussed in Section 2.8.4. 1ac85212b8468925785d88e573d64b511332b60e Geometric norm 0 38 342 294 2024-04-13T05:14:11Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by :$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == See Also == * [[Geometric constraint]] == In the Book == * The geometric norm is discussed in Section 2.10. 8f20948532b553f1476b1a63539a37e81a9b6e44 Geometric constraint 0 40 343 293 2024-04-13T05:14:49Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ . The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements&mdash;they have no constraints. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == See Also == * [[Geometric norm]] == In the Book == * The geometric constraint is discussed in Section 3.4.3. d70d9e3f2b6772108cf506c902736a0c9199bf30 Unitization 0 39 344 235 2024-04-13T05:15:32Z Eric Lengyel 1 wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf u$$ is unitized by calculating :$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == See Also == * [[Geometric norm]] == In the Book == * Unitization is discussed in Section 2.10.2. 06fb5508fd194f0c0e95cd2fa86f8e31aae4f54c Duality 0 79 345 81 2024-04-13T05:16:31Z Eric Lengyel 1 wikitext text/x-wiki [[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]] The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other. When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture. == See Also == * [[Complements]] == In the Book == * Duality in general is discussed in Section 2.6. 4cdecd77c046ac2a5a68902e2eff95e96c198c3b 363 345 2024-04-13T23:33:37Z Eric Lengyel 1 wikitext text/x-wiki [[Image:Duality.svg|480px|thumb|right|'''Figure 1.''' The coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as the one-dimensional span of a single vector representing a homogeneous point or as the $$(n - 1)$$-dimensional span of all orthogonal vectors representing a homogeneous plane. Geometrically, these two interpretations are dual to each other, and their distances to the origin are reciprocals of each other.]] The concept of duality can be understood geometrically in an ''n''-dimensional projective setting by considering both the subspace that an object occupies and the complementary subspace that the object concurrently does not occupy. The dimensionalities of these two components always sum to ''n'', and they represent the ''space'' and ''antispace'' associated with the object. The example shown in '''Figure 1''' demonstrates the duality between homogeneous points and planes in a four-dimensional projective space. The quadruplet of coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as a vector pointing from the origin toward a specific location on the projection subspace $$w = 1$$. This vector corresponds to the one-dimensional space of the point that it represents. The dual of a point materializes when we consider all of the directions of space that are orthogonal to the single direction $$(p_x, p_y, p_z, p_w)$$. As illustrated by the figure, these directions span an $$(n - 1)$$-dimensional subspace that intersects the projection subspace at a plane when $$n = 4$$. In this way, the coordinates $$(p_x, p_y, p_z, p_w)$$ can be interpreted as both a point and a plane, and they are duals of each other. When we express the coordinates $$(p_x, p_y, p_z, p_w)$$ on the [[vector]] basis as $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$, it explicitly states that we are working with a single spatial dimension representing a point, and the ambiguity is removed. Similarly, if we express the coordinates on the [[antivector]] basis as $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$, then we are working with the three orthogonal spatial dimensions representing a plane. In each case, the subscripts of the basis elements tell us which basis vectors are present in the representation, and this defines the space of the object. The subscripts also tell us which basis vectors are absent in the representation, and this defines the antispace of the object. Acknowledging the existence of both the space and the antispace of any object and assigning equal meaningfulness to them allows us to explore the nature of duality to its fullest. A vector $$p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is never only a point, but both a point and a plane simultaneously, where the point exists in space, and the plane exists in antispace. Likewise, an antivector $$p_x \mathbf e_{234} + p_y \mathbf e_{314} + p_z \mathbf e_{124} + p_w \mathbf e_{321}$$ is never only a plane, but both a plane and a point simultaneously, where the plane exists in space, and the point exists in antispace. If we study only the spatial facet of these objects, then we are missing half of a bigger picture. == In the Book == * Duality in general is discussed in Section 2.6. == See Also == * [[Complements]] 214cebf0fe6597f1441b7c38878abef54de66bfe Exterior products 0 73 346 282 2024-04-13T23:24:03Z Eric Lengyel 1 wikitext text/x-wiki The ''exterior product'' is the fundamental product of Grassmann Algebra, and it forms part of the [[geometric product]] in geometric algebra. There are two products with symmetric properties called the exterior product and exterior antiproduct. The exterior product between two elements $$\mathbf a$$ and $$\mathbf b$$ generally combines their spatial extents, and the magnitude of the result indicates how close they are to being orthogonal. If the spatial extents of $$\mathbf a$$ and $$\mathbf b$$ are parallel, then their exterior product is zero. (Compare this to the [[dot product]], which is zero whenever $$\mathbf a$$ and $$\mathbf b$$ are orthogonal.) == Exterior Product == The exterior product is widely known as the ''wedge product'' because it is written with an upward pointing wedge. The exterior product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \wedge \mathbf b$$ and read "$$\mathbf a$$ wedge $$\mathbf b$$". Grassmann called this the progressive combinatorial product. The defining characteristic of the wedge product is that multiplying any vector $$\mathbf v$$ by itself produces zero: $$\mathbf v \wedge \mathbf v = 0$$. This implies that the wedge product is anticommutative for vectors, so we always have :$$\mathbf v \wedge \mathbf w = -\mathbf w \wedge \mathbf v$$ for vectors $$\mathbf v$$ and $$\mathbf w$$. The wedge product is not anticommutative in general, however. For general basis elements $$\mathbf a$$ and $$\mathbf b$$, reversing the order of the operands satisfies the relationship :$$\mathbf a \wedge \mathbf b = (-1)^{\operatorname{gr}(\mathbf a)\operatorname{gr}(\mathbf b)} \mathbf b \wedge \mathbf a$$ . The wedge product adds the [[grades]] of its operands, so we have :$$\operatorname{gr}(\mathbf a \wedge \mathbf b) = \operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b)$$ . The following Cayley table shows the exterior products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:WedgeProduct.svg|720px]] == Exterior Antiproduct == The exterior antiproduct is a dual to the exterior product. It is written with a downward pointing wedge and thus called the ''antiwedge product''. The exterior antiproduct $$\mathbf a \vee \mathbf b$$ is read "$$\mathbf a$$ antiwedge $$\mathbf b$$". Grassmann called this the regressive combinatorial product. Whereas the wedge product combines the full dimensions of its operands, the antiwedge product combines the empty dimensions of its operands. The antiwedge product adds the [[antigrades]] of its operands, so we have :$$\operatorname{ag}(\mathbf a \vee \mathbf b) = \operatorname{ag}(\mathbf a) + \operatorname{ag}(\mathbf b)$$ . The following Cayley table shows the exterior antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:AntiwedgeProduct.svg|720px]] == De Morgan Laws == The relationship between the product and antiproduct is based on an exchange of full and empty dimensions. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \wedge \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \vee \overline{\mathbf b}$$ :$$\overline{\mathbf a \vee \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \wedge \overline{\mathbf b}$$ :$$\underline{\mathbf a \wedge \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \vee \underline{\mathbf b}$$ :$$\underline{\mathbf a \vee \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \wedge \underline{\mathbf b}$$ == General Properties == The following table lists several general properties of the wedge product and antiwedge product. {| class="wikitable" ! Property !! Description |- | style="padding: 12px;" | $$\mathbf a \wedge \mathbf b = -\mathbf b \wedge \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the wedge product for vectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$\mathbf a \vee \mathbf b = -\mathbf b \vee \mathbf a$$ | style="padding: 12px;" | Anticommutativity of the antiwedge product for antivectors $$\mathbf a$$ and $$\mathbf b$$. |- | style="padding: 12px;" | $$(\mathbf a \wedge \mathbf b) \wedge \mathbf c = \mathbf a \wedge (\mathbf b \wedge \mathbf c)$$ | style="padding: 12px;" | Associative law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(\mathbf a \vee \mathbf b) \vee \mathbf c = \mathbf a \vee (\mathbf b \vee \mathbf c)$$ | style="padding: 12px;" | Associative law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \wedge (\mathbf b + \mathbf c) = \mathbf a \wedge \mathbf b + \mathbf a \wedge \mathbf c$$ | style="padding: 12px;" | Distributive law for the wedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$\mathbf a \vee (\mathbf b + \mathbf c) = \mathbf a \vee \mathbf b + \mathbf a \vee \mathbf c$$ | style="padding: 12px;" | Distributive law for the antiwedge product for any elements $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. |- | style="padding: 12px;" | $$(t\mathbf a) \wedge \mathbf b = \mathbf a \wedge (t\mathbf b) = t(\mathbf a \wedge \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the wedge product. |- | style="padding: 12px;" | $$(t\mathbf a) \vee \mathbf b = \mathbf a \vee (t\mathbf b) = t(\mathbf a \vee \mathbf b)$$ | style="padding: 12px;" | Scalar factorization of the antiwedge product. |- | style="padding: 12px;" | $$s \wedge \mathbf a = \mathbf a \wedge s = s\mathbf a$$ | style="padding: 12px;" | Wedge product of a [[scalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \vee \mathbf a = \mathbf a \vee s = s\mathbf a$$ | style="padding: 12px;" | Antiwedge product of an [[antiscalar]] $$s$$ and any basis element $$\mathbf a$$. |- | style="padding: 12px;" | $$s \wedge t = st$$ | style="padding: 12px;" | Wedge product of [[scalars]] $$s$$ and $$t$$. |- | style="padding: 12px;" | $$s \vee t = st$$ | style="padding: 12px;" | Antiwedge product of [[antiscalars]] $$s$$ and $$t$$. |} == In the Book == * The exterior (wedge) product is introduced in Section 2.1.1. * The exterior antiproduct is discussed in Section 2.3. == See Also == * [[Geometric products]] * [[Dot products]] * [[Complements]] ce2ae72814bc612a70b0736fc4009d2ec18e7759 Geometric products 0 76 347 278 2024-04-13T23:25:20Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric product'' is the fundamental product of geometric algebra. There are two products with symmetric properties called the geometric product and geometric antiproduct. == Geometric Product == The geometric product between two elements $$\mathbf a$$ and $$\mathbf b$$ has often been written by simply juxtaposing its operands as $$\mathbf{ab}$$ without the use of any infix operator. However, this clearly becomes impractical when both a product and antiproduct are present in the same context, which is now known to be necessary for a proper understanding of the algebra. To remedy the situation, we write the geometric product between elements $$\mathbf a$$ and $$\mathbf b$$ as $$\mathbf a \mathbin{\unicode{x27D1}} \mathbf b$$ and read it as "$$\mathbf a$$ wedge-dot $$\mathbf b$$". The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{3,0,1}$$ means that three basis vectors square to +'''1''', zero basis vectors square to &minus;'''1''', and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows. :$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = \mathbf 1$$ :$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = \mathbf 1$$ :$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = \mathbf 1$$ :$$\mathbf e_4 \mathbin{\unicode{x27D1}} \mathbf e_4 = 0$$ :$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$. The following Cayley table shows the geometric products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$. Cells highlighted in green correspond to the contribution from the [[wedge product]]. [[Image:GeometricProduct.svg|720px]] == Geometric Antiproduct == The geometric antiproduct is a dual to the geometric product. The geometric antiproduct between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x27C7}} \mathbf b$$ and is read as "$$\mathbf a$$ antiwedge-dot $$\mathbf b$$". The same metric that defines products of basis vectors under the geometric product also applies to the geometric antiproduct, except that now it defines products of basis [[antivectors]]. Three basis antivectors square to $$+{\large\unicode{x1D7D9}}$$, zero basis antivectors square to $$-{\large\unicode{x1D7D9}}$$, and one basis antivector squares to 0. The geometric antiproduct between two different basis antivectors is given by the [[antiwedge product]]. We can write these rules as follows. :$$\overline{\mathbf e_1} \mathbin{\unicode{x27C7}} \overline{\mathbf e_1} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_2} \mathbin{\unicode{x27C7}} \overline{\mathbf e_2} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_3} \mathbin{\unicode{x27C7}} \overline{\mathbf e_3} = {\large\unicode{x1D7D9}}$$ :$$\overline{\mathbf e_4} \mathbin{\unicode{x27C7}} \overline{\mathbf e_4} = 0$$ :$$\overline{\mathbf e_i} \mathbin{\unicode{x27C7}} \overline{\mathbf e_j} = \overline{\mathbf e_i} \vee \overline{\mathbf e_j}$$, for $$i \neq j$$. The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $${\large\unicode{x1D7D9}}$$. Cells highlighted in green correspond to the contribution from the [[antiwedge product]]. [[Image:GeometricAntiproduct.svg|720px]] == De Morgan Laws == The relationship between the product and antiproduct is based on an exchange of full and empty dimensions. We can then express each product in terms of the other through an analog of De Morgan's laws as follows. :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \overline{\mathbf b}$$ :$$\overline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \overline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \overline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27D1}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27C7}} \underline{\mathbf b}$$ :$$\underline{\mathbf a \mathbin{\smash{\unicode{x27C7}}} \mathbf b} = \underline{\mathbf{a\vphantom{b}}} \mathbin{\unicode{x27D1}} \underline{\mathbf b}$$ == In the Book == * The geometric product and antiproduct are introduced in Section 3.1. == See Also == * [[Wedge products]] * [[Dot products]] * [[Complements]] 86caa6ed8275a0991c424711d278299e3e3d35fa Dot products 0 67 348 329 2024-04-13T23:26:29Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode{x25CF}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. == Antidot Product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode{x25CB}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode{x25CF}} \underline{\mathbf b}}$$ . == Table == The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero. [[Image:Dots.svg|720px]] == In the Book == * The dot product and antidot product are introduced in Section 2.9. == See Also == * [[Geometric products]] * [[Wedge products]] 0d014770c34ea5213f0bc03c996ab3559a20730e Bulk dual 0 171 349 2024-04-13T23:27:00Z Eric Lengyel 1 Redirected page to [[Duals]] wikitext text/x-wiki #REDIRECT [[Duals]] 15f9e5636d77c1786a0220d23ce698f1f4e1bf37 Weight dual 0 172 350 2024-04-13T23:27:07Z Eric Lengyel 1 Redirected page to [[Duals]] wikitext text/x-wiki #REDIRECT [[Duals]] 15f9e5636d77c1786a0220d23ce698f1f4e1bf37 Interior products 0 70 351 266 2024-04-13T23:27:50Z Eric Lengyel 1 wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode{x25CF}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode{x25CB}} \mathbf b) \vee \mathbf 1$$ . The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode{x25CB}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode{x25CF}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == In the Book == * Interior products, contractions, and expansions are discussed in Section 2.13. == See Also == * [[Projections]] bf03bb5a7ab3caca70777d95a48ea47a2396e21a Projections 0 50 352 227 2024-04-13T23:28:41Z Eric Lengyel 1 wikitext text/x-wiki Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below. The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. == Projection == The orthogonal projection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula :$$\mathbf b \vee (\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ , where the operation in parentheses is the [[weight expansion]] of $$\mathbf a$$ into $$\mathbf b$$. Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Projection Formula !! Illustration |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$. $$\mathbf g \vee (\mathbf p \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$ | style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]] |- | style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. $$\begin{split}\boldsymbol l \vee (\mathbf p \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)(l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3) \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$ | style="padding: 2em;" | [[Image:point_onto_line.svg|200px]] |- | style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$. $$\begin{split}\mathbf g \vee (\boldsymbol l \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]] |} == Antiprojection == The orthogonal antiprojection of an object $$\mathbf a$$ onto an object $$\mathbf b$$ is given by the general formula :$$\mathbf b \wedge (\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606})$$ , where the operation in parentheses is the [[weight contraction]] of $$\mathbf a$$ with $$\mathbf b$$. Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table. {| class="wikitable" ! Antiprojection Formula !! Illustration |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$. $$\mathbf p \wedge (\mathbf g \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) = p_w^2(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$ | style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. $$\begin{split}\mathbf p \wedge (\boldsymbol l \vee \mathbf p^\unicode["segoe ui symbol"]{x2606}) =\, &p_w^2(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$ | style="padding: 2em;" | [[Image:line_onto_point.svg|200px]] |- | style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$. $$\begin{split}\boldsymbol l \wedge (\mathbf g \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$ | style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]] |} == Projection of Origin == When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Projection Formula !! Description |- | style="padding: 12px;" | $$\mathbf g \vee (\mathbf e_4 \wedge \mathbf g^\unicode["segoe ui symbol"]{x2606}) = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$. |- | style="padding: 12px;" | $$\boldsymbol l \vee (\mathbf e_4 \wedge \boldsymbol l^\unicode["segoe ui symbol"]{x2606}) = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ | style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$. |} == Antiprojection of Horizon == Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the [[bulk contraction]]. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table. {| class="wikitable" ! Antiprojection Formula !! Description |- | style="padding: 12px;" | $$\mathbf p \wedge (\mathbf e_{321} \vee \mathbf p^\unicode["segoe ui symbol"]{x2605}) = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$. |- | style="padding: 12px;" | $$\boldsymbol l \wedge (\mathbf e_{321} \vee \boldsymbol l^\unicode["segoe ui symbol"]{x2605}) = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ | style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$. |} == In the Book == * Projections are discussed in Section 2.13.6. == See Also == * [[Join and meet]] 562bcc5ce564d2722fead980bc883546839d3bac Euclidean distance 0 49 353 143 2024-04-13T23:30:41Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for Euclidean distances between the main types of geometric objects in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Distance Formula !! Illustration |- | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$ $$d(\mathbf p, \mathbf q) = \sqrt{(q_xp_w - p_xq_w)^2 + (q_yp_w - p_yq_w)^2 + (q_zp_w - p_zq_w)^2} + |p_wq_w|{\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. $$d(\mathbf p, \boldsymbol l) = \sqrt{(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)^2 + (l_{vz} p_x - l_{vx} p_z + l_{my} p_w)^2 + (l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)^2} + {\large\unicode{x1D7D9}}\sqrt{p_w^2(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. $$d(\mathbf p, \mathbf g) = |p_xg_x + p_yg_y + p_zg_z + p_wg_w| + {\large\unicode{x1D7D9}}\sqrt{p_w^2(g_x^2 + g_y^2 + g_z^2)}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. $$d(\boldsymbol l, \mathbf k) = |l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + k_{vx} l_{mx} + k_{vy} l_{my} + k_{vz} l_{mz}| + {\large\unicode{x1D7D9}}\sqrt{(l_{vy} k_{vz} - l_{vz} k_{vy})^2 + (l_{vz} k_{vx} - l_{vx} k_{vz})^2 + (l_{vx} k_{vy} - l_{vy} k_{vx})^2}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == In the Book == * Euclidean distances are discussed in Section 2.11. == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] e264d56128b0894d7496f161b2aef3bb9a75db43 370 353 2024-04-21T21:15:22Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula :$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Distance Formula !! Illustration |- | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$ $$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. $$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. $$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. $$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == In the Book == * Euclidean distances are discussed in Section 2.11. == See Also == * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] 3cc937a9c0845b2515b7e3640f5a37f1672c2d2b 371 370 2024-04-21T21:15:59Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula :$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode{x25CB}$$. The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Distance Formula !! Illustration |- | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$ $$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. $$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. $$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. $$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == In the Book == * Euclidean distances are discussed in Section 2.11. == See Also == * [[Euclidean angle]] * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] 2c9a34eb8bbd587325af90c1ae422625cebeb281 Grade and antigrade 0 59 354 339 2024-04-13T23:31:12Z Eric Lengyel 1 wikitext text/x-wiki The ''grade'' of a basis element in a geometric algebra is equal to the number of basis vectors present in its factorization. An arbitrary element whose components all have the same grade is also said to have that grade. The ''antigrade'' of a basis element is equal to the number of basis vectors absent from its factorization. The grade of an element $$\mathbf x$$ is denoted by $$\operatorname{gr}(\mathbf x)$$, and the antigrade is denoted by $$\operatorname{ag}(\mathbf x)$$. In an ''n''-dimensional geometric algebra, it is always the case that :$$\operatorname{gr}(\mathbf x) + \operatorname{ag}(\mathbf x) = n$$ . [[Scalars]] have grade 0, and [[antiscalars]] have grade ''n''. [[Vectors]] have grade 1, and [[antivectors]] have antigrade 1. [[Bivectors]] have grade 2, and [[trivectors]] have grade 3. == In the Book == * Grade and antigrade are introduced in Section 2.1.4. == See Also == * [[Duality]] * [[Complements]] 9ddebc966004f22b406ca8fa8034d0027600255f Complements 0 41 355 335 2024-04-13T23:31:28Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] == In the Book == * Complements are introduced in Section 2.2. == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] b7581c7addc23987955d2cb39a7b0f05f5d40797 Metrics 0 168 356 338 2024-04-13T23:31:44Z Eric Lengyel 1 wikitext text/x-wiki The ''metric'' used in the 4D rigid geometric algebra over 3D Euclidean space is the $$4 \times 4$$ matrix $$\mathfrak g$$ given by :$$\mathfrak g = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\\end{bmatrix}$$ . The ''metric exomorphism matrix'' $$\mathbf G$$, often just called the "metric" itself, corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:metric-rga-3d.svg|420px]] The ''metric antiexomorphism matrix'' $$\mathbb G$$, often called the "antimetric", corresponding to the metric $$\mathfrak g$$ is the $$16 \times 16$$ matrix shown below. [[Image:antimetric-rga-3d.svg|420px]] The product of the metric exomorphism matrix $$\mathbf G$$ and metric antiexomorphism matrix $$\mathbb G$$ for any metric $$\mathfrak g$$ is always equal to the $$16 \times 16$$ identity matrix times the determinant of $$\mathfrak g$$. That is, $$\mathbf G \mathbb G = \det(\mathfrak g) \mathbf I$$. The metric and antimetric determine [[bulk and weight]], [[duals]], [[dot products]], and [[geometric products]]. == In the Book == * The metric and antimetric are introduced in Sections 2.8.1 and 2.8.2. == See Also == * [[Bulk and weight]] * [[Duals]] * [[Dot products]] c1c88e8836a6b8fe1c77e8da99c7fddc2651398d Bulk and weight 0 6 357 337 2024-04-13T23:32:00Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode{x25CF}$$, and it is defined as :$$\mathbf u_\unicode{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode{x25CB}$$, and it is defined as :$$\mathbf u_\unicode{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == In the Book == * Bulk and weight are introduced in Section 2.8.3. == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] * [[Duals]] bd0a692b62d66dcdf69ab3cd93f12448b501cab6 394 357 2024-07-08T01:16:10Z Eric Lengyel 1 wikitext text/x-wiki The degenerate metric of rigid geometric algebra naturally divides the components of every quantity into two groups called the ''bulk'' and the ''weight''. The bulk of an element $$\mathbf u$$ is denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x25CF}$$, and it is defined as :$$\mathbf u_\unicode["segoe ui symbol"]{x25CF} = \mathbf G \mathbf u$$, where $$\mathbf G$$ is the [[metric exomorphism matrix]]. The bulk consists of the components of $$\mathbf u$$ that do not have the projective basis vector $$\mathbf e_4$$ as a factor. The weight is denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x25CB}$$, and it is defined as :$$\mathbf u_\unicode["segoe ui symbol"]{x25CB} = \mathbb G \mathbf u$$, where $$\mathbb G$$ is the [[metric antiexomorphism matrix]]. The weight consists of the components of $$\mathbf u$$ that do have the projective basis vector $$\mathbf e_4$$ as a factor. The bulk generally contains information about the position of an element relative to the origin, and the weight generally contains information about the attitude and orientation of an element. An object with zero bulk contains the origin. An object with zero weight is contained by the horizon. An element is [[unitized]] when the magnitude of its weight is one. The following table lists the bulk and weight for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk !! Weight |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\mathbf z_\unicode["segoe ui symbol"]{x25CF} = x \mathbf 1$$ | style="padding: 12px;" | $$\mathbf z_\unicode["segoe ui symbol"]{x25CB} = y {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf p_\unicode["segoe ui symbol"]{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | style="padding: 12px;" | $$\mathbf p_\unicode["segoe ui symbol"]{x25CB} = p_w \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode["segoe ui symbol"]{x25CF} = l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\boldsymbol l_\unicode["segoe ui symbol"]{x25CB} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode["segoe ui symbol"]{x25CF} = g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf g_\unicode["segoe ui symbol"]{x25CB} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode["segoe ui symbol"]{x25CF} = Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\mathbf Q_\unicode["segoe ui symbol"]{x25CB} = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode["segoe ui symbol"]{x25CF} = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf F_\unicode["segoe ui symbol"]{x25CB} = F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412}$$ |} == In the Book == * Bulk and weight are introduced in Section 2.8.3. == See Also == * [[Attitude]] * [[Geometric norm]] * [[Unitization]] * [[Complements]] * [[Duals]] 5f50b9344176b5cea1e84b59cffdb93ef8bf4fc3 Duals 0 164 358 334 2024-04-13T23:32:14Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == In the Book == * Duals are introduced in Section 2.12. == See Also == * [[Complements]] * [[Bulk and weight]] 2587e78bdf262a4a895a174f5f53e5c463d4c133 386 358 2024-05-12T01:31:27Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Duals.svg|720px]] == Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == In the Book == * Duals are introduced in Section 2.12. == See Also == * [[Complements]] * [[Bulk and weight]] 91dc9a9b2977bc94f24fd007ff613c1451ba4443 388 386 2024-05-12T01:33:21Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == Duals of Basis Elements == The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Duals.svg|720px]] == Duals of Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == In the Book == * Duals are introduced in Section 2.12. == See Also == * [[Complements]] * [[Bulk and weight]] 154b436cbfb4d1834ab89e5f0f7e8f6d5459c879 Reverses 0 58 359 340 2024-04-13T23:32:30Z Eric Lengyel 1 wikitext text/x-wiki ''Reverses'' are unary operations in geometric algebra that are analogs of conjugate or transpose operations. For any element $$\mathbf u$$ that is the [[wedge product]] of $$k$$ vectors, the ''reverse'' of $$\mathbf u$$, which we denote by $$\mathbf{\tilde u}$$, is the result of multiplying those same $$k$$ vectors in reverse order. For example, the reverse of $$\mathbf e_{423}$$ is $$\mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_4$$, which we would write as $$-\mathbf e_{423}$$since 324 is an odd permutation of 423. In general, the reverse of an element $$\mathbf u$$ is given by :$$\mathbf{\tilde u} = (-1)^{\operatorname{gr}(\mathbf u)(\operatorname{gr}(\mathbf u) - 1)/2}\,\mathbf u$$ . Symmetrically, for any element $$\mathbf u$$ that is the [[antiwedge product]] of $$m$$ antivectors, the ''antireverse'' of $$\mathbf u$$, which we denote by $$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}}$$, is the result of multiplying those same $$m$$ antivectors in reverse order (but this time under the [[antiwedge product]]). In general, the antireverse of an element $$\mathbf u$$ is given by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{ag}(\mathbf u)(\operatorname{ag}(\mathbf u) - 1)/2}\,\mathbf u$$ . The reverse and antireverse of any element $$\mathbf u$$ are related by :$$\smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}(-1)^{n(n-1)/2}\,\mathbf{\tilde u}$$ , where $$n$$ is the number of dimensions in the algebra. To extend the reversals to all elements of an algebra, we simply require that it is a linear operation. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the reverse :$$\widetilde{(a\mathbf x + b\mathbf y)} = a\mathbf{\tilde x} + b\mathbf{\tilde y}$$ , and similarly for the antireverse. The following table lists the reverse and antireverse for all of the basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Reverses.svg|720px]] == In the Book == * Reverses and antireverses are introduced in Section 3.4. == See Also == * [[Complements]] 9b850ae9bb3c0622937561bf1d19656ccfc95c48 Geometric norm 0 38 360 342 2024-04-13T23:32:58Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CF} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode{x25CB} = \sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by :$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode{x25CF}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == In the Book == * The geometric norm is discussed in Section 2.10. == See Also == * [[Geometric constraint]] 2ff0a8cc8a95e16e350832ee76aeac095b074e03 Geometric constraint 0 40 361 343 2024-04-13T23:33:12Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode{x25CF}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode{x25CB}} \mathbf u$$ . The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements&mdash;they have no constraints. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == In the Book == * The geometric constraint is discussed in Section 3.4.3. == See Also == * [[Geometric norm]] e9bc1a9070bd0d11424fd7ff46b259ba85d59fd3 Unitization 0 39 362 344 2024-04-13T23:33:26Z Eric Lengyel 1 wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf u$$ is unitized by calculating :$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode{x25CB}} \mathbf u}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == In the Book == * Unitization is discussed in Section 2.10.2. == See Also == * [[Geometric norm]] a23a139bf878ae9d8af31f39ff578be7c568102b Point 0 81 364 302 2024-04-13T23:49:41Z Eric Lengyel 1 wikitext text/x-wiki [[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric constraint]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$. When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself. A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by :$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ . == Points at Infinity == If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. <br clear="right" /> == In the Book == * Homogeneous points are discussed in Section 2.4.1. == See Also == * [[Line]] * [[Plane]] e0c9dba0462fe6bcbbfdb5d8a2f1752bde1029cf Line 0 7 365 295 2024-04-13T23:50:04Z Eric Lengyel 1 wikitext text/x-wiki [[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation :$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ , which means that, when regarded as vectors, the direction and moment of a line are perpendicular. The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction. When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself. <br clear="right" /> == Lines at Infinity == [[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]] If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]]. When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$. <br clear="right" /> == Skew Lines == [[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]] Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line :$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$ and then orthogonalizing its direction and moment to obtain :$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ , where :$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ . If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$. The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function. <br clear="right" /> == In the Book == * Homogeneous lines are discussed in Section 2.4.2. == See Also == * [[Point]] * [[Plane]] 6d292ea6e809dd9bad914d8d82224b1bfbc89247 Plane 0 61 366 304 2024-04-13T23:50:25Z Eric Lengyel 1 wikitext text/x-wiki [[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric constraint]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal. When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself. A [[dual translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by :$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ . == Plane at Infinity == If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space. <br clear="right" /> == In the Book == * Homogeneous planes are discussed in Section 2.4.3. == See Also == * [[Point]] * [[Line]] ebc9f12b63c4877b0b21ce3b6ef28afe3445bfd1 395 366 2024-07-08T01:16:47Z Eric Lengyel 1 wikitext text/x-wiki [[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric constraint]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal. When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself. A [[complement translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by :$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ . == Plane at Infinity == If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space. <br clear="right" /> == In the Book == * Homogeneous planes are discussed in Section 2.4.3. == See Also == * [[Point]] * [[Line]] c3fc9874189bdc110ab61c53d89426b8b573b2fb Motor 0 3 367 311 2024-04-13T23:51:11Z Eric Lengyel 1 wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode{x25CF}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == In the Book == * General motion operators (motors) are discussed in Section 3.6. == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 51b72f07b4f42ee03d0cdf8164593a514753c083 Flector 0 44 368 312 2024-04-13T23:51:36Z Eric Lengyel 1 wikitext text/x-wiki [[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation :$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ , and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$. An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$. == Norm == The [[bulk norm]] of a flector $$\mathbf F$$ is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ . The [[geometric norm]] of a flector $$\mathbf F$$ is thus :$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$. == Trigonometric Form == A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as :$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ . This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane. == Factorization == Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ , where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ , which is always unitized. The original flector $$\mathbf F$$ can now be expressed as :$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ . == Conversion from Flector to Matrix == Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices :$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Flector == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$ :$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$ :$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$ :$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$ :$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$ :$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$ :$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$ :$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$ :$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$ If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate :$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ , where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by $$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$ $$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$ $$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$ $$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ . == Flector Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$ $$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$ $$q'_w = -q_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$ $$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$ $$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$ $$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$ $$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$ |} == In the Book == * General reflection operators (flectors) are discussed in Section 3.7. == See Also == * [[Motor]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 762b150f2da64eca276a9f1b9ec6db22ddd495fc Transformation groups 0 25 369 192 2024-04-13T23:52:40Z Eric Lengyel 1 wikitext text/x-wiki In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ . Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group E(3) with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$. Symmetrically, every reciprocal Euclidean isometry of 3D space can be represented by a [[reciprocal motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$ or by a [[reciprocal flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ . Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the reciprocal Euclidean group RE(3) with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$. The [[geometric product]] corresponds to transform composition in the group RE(3), and the [[geometric antiproduct]] corresponds to transform composition in the group E(3). [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[reciprocal reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of RE(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of E(3). Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of E(3), and it transforms the antispace of $$\mathbf x$$ with the complementary element of RE(3). The groups E(''n'') and RE(''n'') are isomorphic, and they each contain the orthogonal group O(''n'') as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of E(''n'') and RE(''n''). The groups E(''n'') and RE(''n'') have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group E(''n'') contains the special Euclidean subgroup SE(''n'') consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the reciprocal Euclidean group RE(''n'') contains the reciprocal special Euclidean subgroup RSE(''n'') consisting of all combinations of [[reciprocal rotations]] and [[reciprocal translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups SE(''n'') and RSE(''n'') further contain translation subgroups T(''n'') and RT(''n''), respectively. [[Image:Groups.svg|800px]] Transforms about invariants containing the origin are the same in both E(''n'') and RE(''n''), and they constitute the common subgroup O(''n''). Every member of O(''n'') has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$. In terms of matrix multiplication, a general element of the group E(''n'') transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ , where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group RE(''n'') transforms points with matrices of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ . In the special subgroups SE(''n'') and RSE(''n''), the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups T(''n'') and RT(''n''), $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to O(''n''). The isomorphic mapping between E(''n'') and RE(''n'') is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of E(''n''), then the corresponding element of RE(''n'') is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways. == In the Book == * Transformation groups are discussed in Section 3.9.2. == See Also == * [[Motor]] * [[Flector]] a2c4c74bda34871756b039bc2b74f576a350169b File:Angle plane plane.svg 6 173 372 2024-04-21T21:27:10Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Angle plane line.svg 6 174 373 2024-04-21T21:27:20Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Angle line line.svg 6 175 374 2024-04-21T21:27:29Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Euclidean angle 0 176 375 2024-04-21T21:27:37Z Eric Lengyel 1 Created page with "The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b..." wikitext text/x-wiki The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula :$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ {| class="wikitable" ! Angle Formula !! Illustration |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$. $$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\mathbf h \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|122px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$. $$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|250px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$. $$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}\left\Vert\mathbf k \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|250px]] |} == In the Book == * Euclidean angles are discussed in Section 2.13.3. == See Also == * [[Euclidean distance]] * [[Geometric norm]] * [[Magnitude]] * [[Interior products]] ee1f5bb835415a72726c7ba377de719666d3a724 376 375 2024-04-21T21:28:15Z Eric Lengyel 1 wikitext text/x-wiki The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula :$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode{x25CB}\left\Vert\mathbf b \right\Vert_\unicode{x25CB}$$. The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ {| class="wikitable" ! Angle Formula !! Illustration |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$. $$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\mathbf h \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|200px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$. $$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|200px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$. $$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode{x25CB}\left\Vert\mathbf k \right\Vert_\unicode{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|200px]] |} == In the Book == * Euclidean angles are discussed in Section 2.13.3. == See Also == * [[Euclidean distance]] * [[Geometric norm]] * [[Magnitude]] * [[Interior products]] 227ec321839395d0fdb4db9e3ab69ca49985c748 Main Page 0 1 377 324 2024-04-21T21:28:45Z Eric Lengyel 1 /* Products and other binary operations */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Metrics]] * [[Bulk and weight]] * [[Duals]] * [[Reverses]] * [[Attitude]] * [[Geometric norm]] * [[Geometric constraint]] * [[Unitization]] * [[Duality]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] * [[Euclidean angle]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] === Research Articles === * [[Projective Geometric Algebra Done Right]] * [[Symmetries in Projective Geometric Algebra]] * [[Space-Antispace Transform Correspondence in Projective Geometric Algebra]] 6af5d605af1774829e001aa04a50cd9eb5ca8e3b Exercises 0 177 378 2024-04-29T01:48:07Z Eric Lengyel 1 Created page with "These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective alg..." wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. 460cae9e549ae35d33981813cebca50b42a41a56 379 378 2024-04-29T01:53:07Z Eric Lengyel 1 wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. '''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights. '''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$. 3c31a2ad4c3a4bd62d4cd5fb8c1a119db947028b 381 379 2024-05-04T04:36:46Z Eric Lengyel 1 wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. '''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights. '''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$. '''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$. '''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$. '''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$. f21c2ac11de147acd2855c07af5a709f78a2657c 382 381 2024-05-04T04:38:24Z Eric Lengyel 1 wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. '''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights. '''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$. '''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$. '''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$. '''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$. '''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$. dea15249d28fbc13b5a15724d76907c61ccf4289 383 382 2024-05-04T04:46:57Z Eric Lengyel 1 wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. '''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights. '''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$. '''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$. '''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$. '''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$. '''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$. '''9.''' Derive the relationship between left and right interior products shown in Equation (2.110). '''10.''' Derive Equation (2.159), which is the expansion analog of Equation (2.129). '''11.''' Derive a formula for $$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}}$$, the double bulk dual of $$\mathbf u$$, that uses only $$\operatorname{gr}(\mathbf u)$$, $$\operatorname{ag}(\mathbf u)$$, and the determinant of the metric tensor $$\mathfrak g$$. ed3050eaa552f67869448d148aa6f6f9efff5a95 384 383 2024-05-04T04:49:27Z Eric Lengyel 1 wikitext text/x-wiki These are exercises accompanying the book [https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20 ''Projective Geometric Algebra Illuminated'']. == Exercises for Chapter 2 == '''1.''' Show that Equation (2.35) properly constructs a line containing two points $$\mathbf p$$ and $$\mathbf q$$ with non-unit weights by considering $$\mathbf p / p_w \wedge \mathbf q / q_w$$ and then scaling by $$p_wq_w$$. '''2.''' Let $$\mathbf u$$ be a basis element of the 4D projective algebra. Prove that if $$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ and $$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$, then it must also be true that $$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ and $$\underline{\mathbf u} \vee \mathbf u = \mathbf 1$$. That is, show that right and left complements under the wedge product are also the right and left complements under the antiwedge product. '''3.''' Suppose that the 4D trivectors $$\mathbf g$$ and $$\mathbf h$$ represent parallel planes in 3D space. Show that the magnitude of the moment of $$\mathbf g \vee \mathbf h$$ is the distance between the planes multiplied by both their weights. '''4.''' Let $$\mathbf m$$ be a $$4 \times 4$$ matrix that performs a rotation about the $$z$$ axis in homogeneous coordinates. Calculate the $$16 \times 16$$ exomorphism matrix $$\mathbf M$$ corresponding to $$\mathbf m$$. '''5.''' Suppose that $$\mathbf G$$ is a metric exomorphism. Use the fact that $$\mathbf G$$ is an exomorphism to prove that the associated antimetric $$\mathbb G$$ must satisfy $$\mathbb G(\mathbf a \vee \mathbf b) = \mathbb G\mathbf a \vee \mathbb G\mathbf b$$ for any $$\mathbf a$$ and $$\mathbf b$$. '''6.''' Suppose that the metric tensor $$\mathfrak g$$ is invertible. Show that the wedge and antiwedge products satisfy the relationship $$\mathbf a \vee \mathbf b = (\mathbf a^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605})^\unicode["segoe ui symbol"]{x2606}$$. '''7.''' Suppose that $$\mathbf a$$ and $$\mathbf b$$ are basis elements of an $$n$$-dimensional exterior algebra and $$\operatorname{gr}(\mathbf a) + \operatorname{gr}(\mathbf b) = n$$. Show that $$(\mathbf a \wedge \mathbf b)^\unicode["segoe ui symbol"]{x2605} = \mathbf a^\unicode["segoe ui symbol"]{x2605} \mathbin{\unicode{x25CF}} \mathbf b$$. '''8.''' Show that the geometric norm is idempotent. That is, show that $$\Vert \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}} \Vert = \mathbf a\mathbf 1 + \mathbf b{\large\unicode{x1D7D9}}$$. '''9.''' Derive the relationship between left and right interior products shown in Equation (2.110). '''10.''' Derive Equation (2.159), which is the expansion analog of Equation (2.129). '''11.''' Derive a formula for $$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}}$$, the double bulk dual of $$\mathbf u$$, that uses only $$\operatorname{gr}(\mathbf u)$$, $$\operatorname{ag}(\mathbf u)$$, and the determinant of the metric tensor $$\mathfrak g$$. '''12.''' Assuming that the antivector basis elements are written in the same order as their vector complements, prove that the $$(n - 1)$$-th compound matrix $$C_{n - 1}(\mathbf m)$$ of a matrix $$\mathbf m$$ is always equal to the adjugate transpose of $$\mathbf m$$. 2a4a38482266418b45f68c386c4c9385043bed7e File:Complements.svg 6 42 385 273 2024-05-12T01:30:15Z Eric Lengyel 1 Eric Lengyel uploaded a new version of [[File:Complements.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Duals.svg 6 178 387 2024-05-12T01:31:38Z Eric Lengyel 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Errata 0 179 389 2024-05-12T19:10:30Z Eric Lengyel 1 Created page with "This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, s..." wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. 402fa5765a80043734439b0f55d5e030546dda14 390 389 2024-05-12T20:30:05Z Eric Lengyel 1 wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. == Second Printing == There are no known errata in the second printing. If you have found something, please email the author (lengyel@terathon.com). == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. dde08ec23f3d6ac78d5fa739ca2b61ab48c1e041 391 390 2024-05-13T16:50:37Z Eric Lengyel 1 wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. == Second Printing == There are no known errata in the second printing. If you have found something, please email the author (lengyel@terathon.com). == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]]. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. 7a9ad95e9bcef3d655b481f0e3bac7d5e25c0b8d 392 391 2024-07-02T23:39:51Z Eric Lengyel 1 wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com). == Second Printing and Earlier == * '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]]. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. 7269e1afa92d50d55b85196fe7ed0d2597968239 393 392 2024-07-08T01:13:24Z Eric Lengyel 1 wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com). == Third Printing and Earlier == * '''Page 70.''' In the line following Equation (2.71), the product of the bulks should use the antiwedge product and appear as $$\mathbf a_\unicode["segoe ui symbol"]{x25CF} \vee \mathbf b_\unicode["segoe ui symbol"]{x25CF}$$. == Second Printing and Earlier == * '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]]. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. 76a0ac10d32bbf30d8b40409a37564817f1fbb58 Motor 0 3 396 367 2024-07-08T01:18:10Z Eric Lengyel 1 /* Norm */ wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == In the Book == * General motion operators (motors) are discussed in Section 3.6. == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 923a79d235cfa456fbd1dc1bd3cd595a757e615e 397 396 2024-07-08T01:19:38Z Eric Lengyel 1 /* Square Root */ wikitext text/x-wiki [[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a displacement along the same line.]] A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ . To satisfy the [[geometric constraint]], the components of $$\mathbf Q$$ must satisfy the equation :$$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ . Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions. An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]]. == Simple Motors == If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line. In the case of a pure translation, the motor $$\mathbf T$$ is given by :$$\mathbf T = t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + {\large\unicode{x1d7d9}}$$ , and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$. In the case of a pure rotation, the motor $$\mathbf R$$ is given by :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , and this performs a rotation by twice the angle $$\phi$$ about the [[line]] $$\boldsymbol l$$. == Motors Built from Geometry == Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table. {| class="wikitable" ! Motor|| Description |- | style="padding: 12px;" | $$\begin{split}\mathbf h \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{g}}} =\, &(g_yh_z - g_zh_y)\mathbf e_{41} + (g_zh_x - g_xh_z)\mathbf e_{42} + (g_xh_y - g_yh_x)\mathbf e_{43} \\ +\, &(h_xg_w - g_xh_w)\mathbf e_{23} + (h_yg_w - g_yh_w)\mathbf e_{31} + (h_zg_w - g_zh_w)\mathbf e_{12} \\ +\, &(g_xh_x + g_yh_y + g_zh_z)\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$. $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ |- | style="padding: 12px;" | $$\begin{split}\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}} =\, &(l_{vz} k_{vy} - l_{vy} k_{vz})\mathbf e_{41} + (l_{vx} k_{vz} - l_{vz} k_{vx})\mathbf e_{42} + (l_{vy} k_{vx} - l_{vx} k_{vy})\mathbf e_{43} \\ +\, &(l_{vz} k_{my} - l_{vy} k_{mz} + l_{mz} k_{vy} - l_{my} k_{vz})\mathbf e_{23} + (l_{vx} k_{mz} - l_{vz} k_{mx} + l_{mx} k_{vz} - l_{mz} k_{vx})\mathbf e_{31} + (l_{vy} k_{mx} - l_{vx} k_{my} + l_{my} k_{vx} - l_{mx} k_{vy})\mathbf e_{12} \\ +\, &(l_{vx} k_{mx} + l_{vy} k_{my} + l_{vz} k_{mz} + l_{mx} k_{vx} + l_{my} k_{vy} + l_{mz} k_{vz}) \\ +\, &(l_{vx} k_{vx} + l_{vy} k_{vy} + l_{vz} k_{vz})\smash{\large\unicode{x1d7d9}}\end{split}$$ | style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$. $$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ |- | style="padding: 12px;" | $$\mathbf q \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{p}}} = (q_xp_w - p_xq_w)\mathbf e_{23} + (q_yp_w - p_yq_w)\mathbf e_{31} + (q_zp_w - p_zq_w)\mathbf e_{12} + (p_wq_w)\smash{\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$. $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ |} == Norm == The [[bulk norm]] of a motor $$\mathbf Q$$ is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde Q}} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf Q \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}\vphantom{\mathbf{\tilde Q}}} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ . The [[geometric norm]] of a motor $$\mathbf Q$$ is thus :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$. == Exponential Form == A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as :$$\mathbf Q = \exp_\unicode{x27C7}((d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l) = \cos_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) + \sin_\unicode{x27C7}(d + \phi{\large\unicode{x1D7D9}}) \mathbin{\unicode{x27C7}} \boldsymbol l$$ . This expands to :$$\mathbf Q = \boldsymbol l\sin\phi + (d \mathbin{\unicode{x27C7}} \boldsymbol l)\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ , and replacing the [[line]] $$\boldsymbol l$$ with its components gives us :$$\mathbf Q = (l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12})\sin\phi + d(l_{vx} \mathbf e_{23} + l_{vy} \mathbf e_{31} + l_{vz} \mathbf e_{12})\cos\phi - d\sin\phi + {\large\unicode{x1D7D9}}\cos\phi$$ . A motor in exponential form is always [[unitized]], and its [[geometric norm]] can be written as :$$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{d^2 + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\sin^2\phi}$$ . The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation. == Logarithm == Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations :$$Q_{mw} = -d\sin\phi$$ :$$Q_{vw} = \cos\phi$$ . Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then, :$$d = -\dfrac{Q_{mw}}{s}$$ :$$\phi = \tan^{-1}\left(\dfrac{s}{Q_{vw}}\right)$$ . If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required. The components of $$\boldsymbol l$$ are then given by :$$(l_{vx}, l_{vy}, l_{vz}) = \dfrac{1}{s}(Q_{vx}, Q_{vy}, Q_{vz})$$ :$$(l_{mx}, l_{my}, l_{mz}) = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) - \dfrac{dQ_{vw}}{s}(Q_{vx}, Q_{vy}, Q_{vz})\right] = \dfrac{1}{s}\left[(Q_{mx}, Q_{my}, Q_{mz}) + \dfrac{Q_{vw} Q_{mw}}{s^2}(Q_{vx}, Q_{vy}, Q_{vz})\right]$$ . In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$. == Square Root == The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case. Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\sin^2\phi + (\cos\phi + 1)^2} = \sqrt{\vphantom{\sin^2\phi}2 + 2Q_\smash{\large\unicode{x1D7D9}}}$$ , where $$Q_{\large\unicode{x1D7D9}} = \cos\phi$$. Applying the trigonometric identity $$\cos^2(\phi/2) = (1 + \cos\phi)/2$$, we can rewrite this as :$$\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB} = 2\cos(\phi/2)$$ . Applying several more trigonometric identities, we now observe :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{2\cos(\phi/2)} = \boldsymbol l\sin(\phi/2) + \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\cos(\phi/2) - \dfrac{d}{2}\sin(\phi/2) + {\large\unicode{x1D7D9}}\cos(\phi/2) - \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) - \dfrac{d}{2}\sin(\phi/2)$$ . The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that :$$\dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}} \mathbin{\unicode{x27C7}} \dfrac{d}{2}\tan(\phi/2) = \left(\dfrac{d}{2} \mathbin{\unicode{x27C7}} \boldsymbol l\right)\sin(\phi/2)\tan(\phi/2) + \dfrac{d}{2}\sin(\phi/2)$$ , which means that :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} + \dfrac{d}{2}\tan(\phi/2)\right)$$ . The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields :$$\dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}} = -\dfrac{d}{2}\tan(\phi/2)$$ . The square root of a general motor $$\mathbf Q$$ is thus given by :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} \mathbin{\unicode{x27C7}} \left({\large\unicode{x1D7D9}} - \dfrac{Q_\mathbf 1}{2 + 2Q_{\large\unicode{x1D7D9}}}\right)$$ . If $$\mathbf Q$$ is a simple motor, then $$Q_{\mathbf 1} = 0$$, and this reduces to :$$\sqrt{\mathbf Q} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\sqrt{2 + 2Q_\smash{\large\unicode{x1D7D9}}}} = \dfrac{\mathbf Q + {\large\unicode{x1D7D9}}}{\left\Vert\mathbf Q + \smash{\large\unicode{x1D7D9}}\right\Vert_\unicode["segoe ui symbol"]{x25CB}}$$ . == Factorization == Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating :$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ . The motor $$\mathbf T$$ is then given by :$$\mathbf T = (Q_{vy} Q_{mz} - Q_{vz} Q_{my} + Q_{mx} Q_{vw} - Q_{vx} Q_{mw})\mathbf e_{23} + (Q_{vz} Q_{mx} - Q_{vx} Q_{mz} + Q_{my} Q_{vw} - Q_{vy} Q_{mw})\mathbf e_{31} + (Q_{vx} Q_{my} - Q_{vy} Q_{mx} + Q_{mz} Q_{vw} - Q_{vz} Q_{mw})\mathbf e_{12} + {\large\unicode{x1d7d9}}$$ . The original motor $$\mathbf Q$$ can now be expressed as :$$\mathbf Q = \mathbf T \mathbin{\unicode{x27C7}} \mathbf R$$ , where both $$\mathbf R$$ and $$\mathbf T$$ are [[unitized]] simple motors. == Conversion from Motor to Matrix == Given a specific [[Unitization | unitized]] motor $$\mathbf Q$$, define the matrices :$$\mathbf A = \begin{bmatrix}1 - 2(Q_{vy}^2 + Q_{vz}^2) & 2Q_{vx} Q_{vy} & 2Q_{vz} Q_{vx} & 2(Q_{vy} Q_{mz} - Q_{vz} Q_{my}) \\ 2Q_{vx} Q_{vy} & 1 - 2(Q_{vz}^2 + Q_{vx}^2) & 2Q_{vy} Q_{vz} & 2(Q_{vz} Q_{mx} - Q_{vx} Q_{mz}) \\ 2Q_{vz} Q_{vx} & 2Q_{vy} Q_{vz} & 1 - 2(Q_{vx}^2 + Q_{vy}^2) & 2(Q_{vx} Q_{my} - Q_{vy} Q_{mx}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & -2Q_{vz} Q_{vw} & 2Q_{vy} Q_{vw} & 2(Q_{vw} Q_{mx} - Q_{vx} Q_{mw}) \\ 2Q_{vz} Q_{vw} & 0 & -2Q_{vx} Q_{vw} & 2(Q_{vw} Q_{my} - Q_{vy} Q_{mw}) \\ -2Q_{vy} Q_{vw} & 2Q_{vx} Q_{vw} & 0 & 2(Q_{vw} Q_{mz} - Q_{vz} Q_{mw}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Motor == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant +1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$M_{00} - M_{11} - M_{22} + 1 = 4Q_{vx}^2$$ :$$M_{11} - M_{22} - M_{00} + 1 = 4Q_{vy}^2$$ :$$M_{22} - M_{00} - M_{11} + 1 = 4Q_{vz}^2$$ :$$M_{00} + M_{11} + M_{22} + 1 = 4(1 - Q_{vx}^2 - Q_{vy}^2 - Q_{vz}^2) = 4Q_{vw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = 4Q_{vy} Q_{vz}$$ :$$M_{02} + M_{20} = 4Q_{vz} Q_{vx}$$ :$$M_{10} + M_{01} = 4Q_{vx} Q_{vy}$$ :$$M_{21} - M_{12} = 4Q_{vx} Q_{vw}$$ :$$M_{02} - M_{20} = 4Q_{vy} Q_{vw}$$ :$$M_{10} - M_{01} = 4Q_{vz} Q_{vw}$$ If $$M_{00} + M_{11} + M_{22} \geq 0$$, then we calculate :$$Q_{vw} = \pm \dfrac{1}{2}\sqrt{M_{00} + M_{11} + M_{22} + 1}$$ , where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by $$Q_{mx} = \dfrac{1}{2}(Q_{vw} t_x + Q_{vz} t_y - Q_{vy} t_z)$$ $$Q_{my} = \dfrac{1}{2}(Q_{vw} t_y + Q_{vx} t_z - Q_{vz} t_x)$$ $$Q_{mz} = \dfrac{1}{2}(Q_{vw} t_z + Q_{vy} t_x - Q_{vx} t_y)$$ $$Q_{mw} = -\dfrac{1}{2}(Q_{vx} t_x + Q_{vy} t_y + Q_{vz} t_z)$$ . == Motor Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] motor $$\mathbf Q$$ as shown in the following table, where $$\mathbf v = (Q_{vx}, Q_{vy}, Q_{vz})$$ and $$\mathbf m = (Q_{mx}, Q_{my}, Q_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a - Q_{mw}p_w\mathbf v)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(Q_{mw}\mathbf a + Q_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(Q_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz} + Q_{mw}\mathbf g_{xyz}) \cdot \mathbf v - Q_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == In the Book == * General motion operators (motors) are discussed in Section 3.6. == See Also == * [[Flector]] * [[Translation]] * [[Rotation]] 8076c281b3c1bd9bb781c3284748eed48e0d6b8f Flector 0 44 398 368 2024-07-08T01:20:42Z Eric Lengyel 1 /* Norm */ wikitext text/x-wiki [[Image:improper_isom.svg|400px|thumb|right|'''Figure 1.''' A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.]] A ''flector'' is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of [[reflections]], [[inversions]], [[transflections]], and rotoreflections. The name flector is a portmanteau of ''reflection operator''. Flectors cannot perform proper isometries that do not include [[reflections]]; those are instead performed by operators called [[motors]]. In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ , which is the sum of a [[point]] $$\mathbf p$$ and a [[plane]] $$\mathbf g$$. To satisfy the [[geometric constraint]], the components of $$\mathbf F$$ must satisfy the equation :$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ , and this means that the [[point]] $$\mathbf p$$ must lie in the [[plane]] $$\mathbf g$$. An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]]. The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all [[motors]] in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing [[inversion]] through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$. == Norm == The [[bulk norm]] of a flector $$\mathbf F$$ is given by :$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ , and its [[weight norm]] is given by :$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2218}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ . The [[geometric norm]] of a flector $$\mathbf F$$ is thus :$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ , and this is equal to half the distance that the origin is moved by the operator. A flector is [[unitized]] when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$. == Trigonometric Form == A general flector $$\mathbf F$$ can be expressed in terms of a [[unitized]] [[point]] $$\mathbf p$$ and a [[unitized]] [[plane]] $$\mathbf g$$ as :$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ . This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane. == Factorization == Any [[unitized]] flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple [[motor]] $$\mathbf Q$$ and a [[plane]] by calculating :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ , where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by :$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ , which is always unitized. The original flector $$\mathbf F$$ can now be expressed as :$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ . == Conversion from Flector to Matrix == Given a specific [[Unitization | unitized]] flector $$\mathbf G$$, define the matrices :$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$ and :$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ . Then the corresponding 4&times;4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by :$$\mathbf M = \mathbf A + \mathbf B$$ . The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by :$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ . == Conversion from Matrix to Flector == Let $$\mathbf M$$ be an orthogonal 4&times;4 matrix with determinant &minus;1 having the form :$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ . Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$: :$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$ :$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$ :$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$ :$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$ And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$: :$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$ :$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$ :$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$ :$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$ :$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$ :$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$ If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate :$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ , where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$. Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by $$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$ $$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$ $$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$ $$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ . == Flector Transformations == [[Point | Points]], [[Line | lines]], and [[Plane | planes]] are transformed by a [[unitized]] flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$ $$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$ $$q'_w = -q_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$ $$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$ $$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$ $$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$ $$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$ $$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$ |} == In the Book == * General reflection operators (flectors) are discussed in Section 3.7. == See Also == * [[Motor]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 87905216d9be4d98b374ebac477556a46a0f2554 Duals 0 164 399 388 2024-07-08T01:21:28Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . == Antidual == The ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == Duals of Basis Elements == The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Duals.svg|720px]] == Duals of Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == In the Book == * Duals are introduced in Section 2.12. == See Also == * [[Complements]] * [[Bulk and weight]] f8decebd4157572d16fe9110513cb3a70c34d36c 432 399 2024-12-22T08:49:34Z Eric Lengyel 1 wikitext text/x-wiki Every object in projective geometric algebra has two duals derived from the metric tensor, called the ''metric dual'' and ''metric antidual''. == Dual == The (right) ''metric dual'' or just "dual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2605}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf{Gu}}$$ , where $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]]. In projective geometric algebra, this dual is also called the ''bulk dual'' because it is the [[complement]] of the bulk components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CF}}$$ . The bulk dual satisfies the following identity based on the [[geometric product]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2605} = \tilde{\mathbf u} \mathbin{\unicode{x27D1}} {\large\unicode{x1D7D9}}$$ . The right bulk dual produces results equivalent to the Hodge star operator and thus satisfies the identity :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b){\large\unicode{x1D7D9}}$$. == Antidual == The (right) ''metric antidual'' or just "antidual" of an object $$\mathbf u$$ is denoted by $$\mathbf u^\unicode["segoe ui symbol"]{x2606}$$ and defined as :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbb G \mathbf u}$$ , where $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. In projective geometric algebra, this dual is also called the ''weight dual'' because it is the [[complement]] of the weight components, as expressed by :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \overline{\mathbf u_\unicode["segoe ui symbol"]{x25CB}}$$ . The weight dual satisfies the following identity based on the [[geometric antiproduct]]: :$$\mathbf u^\unicode["segoe ui symbol"]{x2606} = \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} \mathbin{\unicode{x27C7}} \mathbf 1$$ . == Duals of Basis Elements == The following table lists the bulk and weight duals for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. In addition to the right duals, there are also left bulk and weight duals denoted by $$\mathbf u_\unicode["segoe ui symbol"]{x2605}$$ and $$\mathbf u_\unicode["segoe ui symbol"]{x2606}$$ for which the right complement operation is replaced by the left complement operation. [[Image:Duals.svg|720px]] Taking either dual twice causes the sign to change according to the formula :$$\mathbf u^{\unicode["segoe ui symbol"]{x2605}\unicode["segoe ui symbol"]{x2605}} = \mathbf u^{\unicode["segoe ui symbol"]{x2606}\unicode["segoe ui symbol"]{x2606}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\det(\mathfrak g)\mathbf u$$ . Since the determinant of the [[metric]] $$\mathfrak g$$ is zero in the projective algebra $$\mathcal G_{3,0,1}$$, applying either dual twice always produces zero here. == Duals of Geometries == The bulk duals and weight duals of geometries in the 4D rigid geometric algebra are listed in the following table. {| class="wikitable" ! Type !! Bulk Dual !! Weight Dual |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2605} = p_x \mathbf e_{423} + p_y \mathbf e_{431} + p_z \mathbf e_{412}$$ | style="padding: 12px;" | $$\mathbf p^\unicode["segoe ui symbol"]{x2606} = p_w \mathbf e_{321}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2605} = -l_{mx} \mathbf e_{41} - l_{my} \mathbf e_{42} - l_{mz} \mathbf e_{43}$$ | style="padding: 12px;" | $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606} = -l_{vx} \mathbf e_{23} - l_{vy} \mathbf e_{31} - l_{vz} \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2605} = -g_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf g^\unicode["segoe ui symbol"]{x2606} = -g_x \mathbf e_1 - g_y \mathbf e_2 - g_z \mathbf e_3$$ |} == In the Book == * Duals are introduced in Section 2.12. == See Also == * [[Complements]] * [[Bulk and weight]] e2fcb5d2ee8a1563988bb7d0293f7f97b6c23aa9 Geometric norm 0 38 400 360 2024-07-08T01:24:58Z Eric Lengyel 1 wikitext text/x-wiki The ''geometric norm'' is a measure of the magnitude of an element. It has two components called the bulk norm and the weight norm. For [[points]], [[lines]], and [[planes]], the geometric norm is equal to the shortest Euclidean distance between the geometry and the origin. For [[motors]] and [[flectors]], the geometric norm is equal to half the distance that the origin is moved by the isometry operator. == Bulk Norm == The ''bulk norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF}$$, is the magnitude of its [[bulk]] components. It can be calculated by taking the square root of the [[dot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u}$$ . An element that has a bulk norm of '''1''' is said to be ''bulk normalized''. The following table lists the bulk norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Bulk Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode["segoe ui symbol"]{x25CF} = |x|$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{p_x^2 + p_y^2 + p_z^2}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{l_{mx}^2 + l_{my}^2 + l_{mz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode["segoe ui symbol"]{x25CF} = |g_w|$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ |} == Weight Norm == The ''weight norm'' of an element $$\mathbf u$$, denoted $$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$, is the magnitude of its [[weight]] components. It can be calculated by taking the square root of the [[antidot product]] of $$\mathbf u$$ with itself: :$$\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}$$ . (Note that the square root in this case is taken with respect to the geometric antiproduct.) An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''weight normalized'' or ''[[unitized]]''. The following table lists the weight norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Weight Norm |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode["segoe ui symbol"]{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode["segoe ui symbol"]{x25CB} = |p_w|{\large\unicode{x1D7D9}}$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\left\Vert\boldsymbol l\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{234} + g_y \mathbf e_{314} + g_z \mathbf e_{124} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2 + g_z^2}$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CB} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ |} == Geometric Norm == The bulk norm and weight norm are summed to construct the ''geometric norm'' given by :$$\left\Vert\mathbf u\right\Vert = \left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB} = \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u} + \sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}$$ . This quantity is the sum of a scalar $$a\mathbf 1$$ and antiscalar $$b{\large\unicode{x1D7D9}}$$ representing a ''homogeneous magnitude'' that itself has a bulk and a weight. Its bulk norm is simply the magnitude of its scalar part, and its weight norm is simply the magnitude of its antiscalar part. The geometric norm is idempotent because :$$\left\Vert a\mathbf 1 + b{\large\unicode{x1D7D9}}\right\Vert = |a|\mathbf 1 + |b|{\large\unicode{x1D7D9}}$$ . Like all other homogeneous quantities, the magnitude given by the geometric norm is [[unitized]] by dividing by its weight norm. The unitized magnitude of an element $$\mathbf u$$ is given by :$$\widehat{\left\Vert\mathbf u\right\Vert} = \dfrac{\left\Vert\mathbf u\right\Vert}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CF}}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} + {\large\unicode{x1D7D9}} = \dfrac{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u}}{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}} + {\large\unicode{x1D7D9}}$$ . The following table lists the unitized geometric norms of the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term. {| class="wikitable" ! Type !! Definition !! Geometric Norm !! Interpretation |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | style="padding: 12px;" | A Euclidean distance. |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2 + p_z^2}}{|p_w|}$$ | style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf p$$. |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \sqrt{\dfrac{l_{mx}^2 + l_{my}^2 + l_{mz}^2}{l_{vx}^2 + l_{vy}^2 + l_{vz}^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the line $$\boldsymbol l$$. Half the distance that the origin is moved by the [[motor]] $$\boldsymbol l$$. |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_w|}{\sqrt{g_x^2 + g_y^2 + g_z^2}}$$ | style="padding: 12px;" | Perpendicular distance from the origin to the plane $$\mathbf g$$. Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$. |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{Q_{mx}^2 + Q_{my}^2 + Q_{mz}^2 + Q_{mw}^2}{Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$. |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ | style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$. |} == In the Book == * The geometric norm is discussed in Section 2.10. == See Also == * [[Geometric constraint]] c5c286f05544be73d3bd72f407caf4bca07293df Geometric constraint 0 40 401 361 2024-07-08T01:25:30Z Eric Lengyel 1 wikitext text/x-wiki An element $$\mathbf x$$ of a geometric algebra possesses the ''geometric constraint'' if and only if the [[geometric product]] between $$\mathbf u$$ and its own reverse is a scalar, which is given by the [[dot product]], and the [[geometric antiproduct]] between $$\mathbf u$$ and its own antireverse is an antiscalar, which is given by the [[antidot product]]. That is, :$$\mathbf u \mathbin{\unicode{x27D1}} \mathbf{\tilde u} = \mathbf u \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf u$$ and :$$\mathbf u \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{u}}} = \mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u$$ . The set of all elements satisfying the geometric constraint is closed under both the [[geometric product]] and [[geometric antiproduct]]. The following table lists the requirements that must be satisfied for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ due to the geometric constraint. Points and planes do not have any requirements&mdash;they have no constraints. {| class="wikitable" ! Type !! Definition !! Requirement |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$xy = 0$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | &mdash; |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx} Q_{mx} + Q_{vy} Q_{my} + Q_{vz} Q_{mz} + Q_{vw} Q_{mw} = 0$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ |} == In the Book == * The geometric constraint is discussed in Section 3.4.3. == See Also == * [[Geometric norm]] 4737551b5ae142560b7f66c9e10a6db77f650776 Unitization 0 39 402 362 2024-07-08T01:25:57Z Eric Lengyel 1 wikitext text/x-wiki ''Unitization'' is the process of scaling an element of a projective geometric algebra so that its [[weight norm]] becomes the [[antiscalar]] $$\large\unicode{x1D7D9}$$. An element that has a weight norm of $$\large\unicode{x1D7D9}$$ is said to be ''unitized''. An element $$\mathbf u$$ is unitized by calculating :$$\mathbf{\hat u} = \dfrac{\mathbf u}{\left\Vert\mathbf u\right\Vert_\unicode["segoe ui symbol"]{x25CB}} = \dfrac{\mathbf u}{\sqrt{\mathbf u \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf u}}$$ . In general, an element is unitized when the combined magnitude of all of its components having a factor of $$\mathbf e_4$$ is unity. That is, the components of the element that extend into the projective fourth dimension collectively have a size of one. The following table lists the unitization conditions for the main types in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. {| class="wikitable" ! Type !! Definition !! Unitization |- | style="padding: 12px;" | [[Magnitude]] | style="padding: 12px;" | $$\mathbf z = x \mathbf 1 + y {\large\unicode{x1d7d9}}$$ | style="padding: 12px;" | $$y^2 = 1$$ |- | style="padding: 12px;" | [[Point]] | style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$p_w^2 = 1$$ |- | style="padding: 12px;" | [[Line]] | style="padding: 12px;" | $$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ | style="padding: 12px;" | $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$ |- | style="padding: 12px;" | [[Plane]] | style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$g_x^2 + g_y^2 + g_z^2 = 1$$ |- | style="padding: 12px;" | [[Motor]] | style="padding: 12px;" | $$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ | style="padding: 12px;" | $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$ |- | style="padding: 12px;" | [[Flector]] | style="padding: 12px;" | $$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ | style="padding: 12px;" | $$F_{pw}^2 + F_{gx}^2 + F_{gy}^2 + F_{gz}^2 = 1$$ |} == In the Book == * Unitization is discussed in Section 2.10.2. == See Also == * [[Geometric norm]] a5a6ccfc3f688c68896f1e54b422089b8d6d8d9b Dot products 0 67 403 348 2024-07-08T01:27:26Z Eric Lengyel 1 wikitext text/x-wiki The ''dot product'' is the inner product in geometric algebra. The dot product and its antiproduct are important for the calculation of angles and [[Geometric norm | norms]]. == Dot Product == The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and read "$$\mathbf a$$ dot $$\mathbf b$$". The dot product is defined as :$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b = \mathbf a^{\mathrm T}\mathbf G \mathbf b$$ , where $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, $$\mathbf G$$ is the $$16 \times 16$$ [[metric exomorphism matrix]], and we are using ordinary matrix multiplication. The dot product between two elements $$\mathbf a$$ and $$\mathbf b$$ is nonzero only if they have the same grade. == Antidot Product == The antidot product between elements $$\mathbf a$$ and $$\mathbf b$$ is written $$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and is read as "$$\mathbf a$$ antidot $$\mathbf b$$". The antidot product is defined as :$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b = \mathbf a^{\mathrm T}\mathbb G \mathbf b$$ , where, again, $$\mathbf a$$ and $$\mathbf b$$ are treated as generic vectors over the 16 basis elements of the algebra, but now $$\mathbb G$$ is the $$16 \times 16$$ [[metric antiexomorphism matrix]]. The antidot product can also be derived from the dot product using the De Morgan relationship :$$\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b = \overline{\underline{\mathbf a} \mathbin{\unicode["segoe ui symbol"]{x2022}} \underline{\mathbf b}}$$ . == Table == The following table shows the dot product and antidot product of each basis element $$\mathbf u$$ in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ with itself. All other dot products and antidot products are zero. [[Image:Dots.svg|720px]] == In the Book == * The dot product and antidot product are introduced in Section 2.9. == See Also == * [[Geometric products]] * [[Wedge products]] 984e7846add9f08d1e3eaeebebdf90ac2c5ae9ae Interior products 0 70 404 351 2024-07-08T01:29:33Z Eric Lengyel 1 wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ . The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == In the Book == * Interior products, contractions, and expansions are discussed in Section 2.13. == See Also == * [[Projections]] b8f7f0f8840fb5165e3edc707fc8adf4c2f6b0a4 422 404 2024-08-22T01:14:49Z Eric Lengyel 1 wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ . The bulk contraction satisfies the identity :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$ The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == In the Book == * Interior products, contractions, and expansions are discussed in Section 2.13. == See Also == * [[Projections]] a854978c0d3f3bb7078e246903a4c213b365a201 423 422 2024-08-22T01:22:14Z Eric Lengyel 1 wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ . The bulk contraction satisfies the identity :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$ . The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The weight expansion satisfies the identity :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \langle\smash{\mathbf{\underset{\Large\unicode{x7E}}{b}}} \mathbin{\unicode{x27C7}} \mathbf a\rangle_{n - [\operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)]}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == In the Book == * Interior products, contractions, and expansions are discussed in Section 2.13. == See Also == * [[Projections]] be64e7059f1fb8caf64d23a39242f0d2f8dbd587 424 423 2024-08-22T03:13:29Z Eric Lengyel 1 /* Expansions */ wikitext text/x-wiki The ''interior products'' are special products in geometric algebra that are useful for a number of operations including [[projections]]. They are defined as the [[wedge product]] or [[antiwedge product]] between one object and either the [[bulk dual]] or [[weight dual]] of another object. == Contractions == The ''bulk contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight contraction'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ contraction}(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The contractions have the effect of subtracting grades so that :$$\operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{gr}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)$$ . In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight contractions are equal to dot products written as :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b$$ and :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b) \vee \mathbf 1$$ . The bulk contraction satisfies the identity :$$\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605} = \langle\mathbf{\tilde b} \mathbin{\unicode{x27D1}} \mathbf a\rangle_{\operatorname{gr}(\mathbf a) - \operatorname{gr}(\mathbf b)}$$ . The following Cayley table shows the bulk and weight contraction products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk contraction are highlighted in green, and the values of the weight contraction are highlighted in purple. The darker green cells along the diagonal correspond to the nonzero entries of the metric $$\mathbf G$$. [[Image:Constractions.svg|720px]] == Expansions == The ''bulk expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{bulk\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605}$$ . The ''weight expansion'' between elements $$\mathbf a$$ and $$\mathbf b$$ is defined as :$$\mathrm{weight\ expansion}(\mathbf a, \mathbf b) = \mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606}$$ . The expansions have the effect of subtracting antigrades so that :$$\operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2605}) = \operatorname{ag}(\mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}) = \operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)$$ . In the case that the grades (and thus antigrades) of $$\mathbf a$$ and $$\mathbf b$$ are the same, the bulk and weight expansions are equal to dot products written as :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \mathbf a \mathbin{\unicode["segoe ui symbol"]{x2218}} \mathbf b$$ and :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2605} = (\mathbf a \mathbin{\unicode["segoe ui symbol"]{x2022}} \mathbf b) \wedge \mathbf {\large\unicode{x1D7D9}}$$ . The weight expansion satisfies the identity :$$\mathbf a \wedge \mathbf b^\unicode["segoe ui symbol"]{x2606} = \langle\!\langle\smash{\mathbf{\underset{\Large\unicode{x7E}}{b}}} \mathbin{\unicode{x27C7}} \mathbf a\rangle\!\rangle_{\operatorname{ag}(\mathbf a) - \operatorname{ag}(\mathbf b)}$$ . The following Cayley table shows the bulk and weight expansion products between all pairs of basis elements in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$. The values of the bulk expansion are highlighted in green, and the values of the weight expansion are highlighted in purple. The darker purple cells along the diagonal correspond to the nonzero entries of the antimetric $$\mathbb G$$. [[Image:Expansions.svg|720px]] == In the Book == * Interior products, contractions, and expansions are discussed in Section 2.13. == See Also == * [[Projections]] 0215a2dd4309c480158445dc0df64bb13c3edbf7 Euclidean distance 0 49 405 371 2024-07-08T01:30:31Z Eric Lengyel 1 wikitext text/x-wiki The Euclidean distance $$d(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$d(\mathbf a, \mathbf b) = \left\Vert\operatorname{att}(\mathbf a \wedge \mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ sum to $$n$$, the dimension of the algebra, a signed distance can be obtained by using the formula :$$d(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b + \left\Vert\mathbf a \wedge \operatorname{att}(\mathbf b)\right\Vert_\unicode["segoe ui symbol"]{x25CB}$$. The following table lists formulas for distances between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[points]], [[lines]], and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$ :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ {| class="wikitable" ! Distance Formula !! Illustration |- | style="padding: 12px;" | Distance $$d$$ between points $$\mathbf p$$ and $$\mathbf q$$ $$d(\mathbf p, \mathbf q) = \left\Vert \mathbf q_{xyz}p_w - \mathbf p_{xyz}q_w\right\Vert \mathbf 1 + |p_wq_w| {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_point.svg|122px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and line $$\boldsymbol l$$. $$d(\mathbf p, \boldsymbol l) = \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf p_{xyz} + p_w \boldsymbol l_{\mathbf m}\right\Vert \mathbf 1 + \left\Vert p_w \boldsymbol l_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_line.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between point $$\mathbf p$$ and plane $$\mathbf g$$. $$d(\mathbf p, \mathbf g) = (\mathbf p \cdot \mathbf g)\mathbf 1 + \left\Vert p_w \mathbf g_{xyz} \right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_point_plane.svg|250px]] |- | style="padding: 12px;" | Perpendicular distance $$d$$ between lines $$\mathbf k$$ and $$\boldsymbol l$$. $$d(\boldsymbol l, \mathbf k) = -(\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf m} + \boldsymbol l_{\mathbf m} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert \boldsymbol l_{\mathbf v} \times \mathbf k_{\mathbf v}\right\Vert {\large\unicode{x1D7D9}}$$ | style="padding: 12px; text-align: center;" | [[Image:distance_line_line.svg|287px]] |} == In the Book == * Euclidean distances are discussed in Section 2.11. == See Also == * [[Euclidean angle]] * [[Geometric norm]] * [[Magnitude]] * [[Attitude]] f89573bc2c6af4202c676be65ac67476677beb3e Euclidean angle 0 176 406 376 2024-07-08T01:31:19Z Eric Lengyel 1 wikitext text/x-wiki The cosine of the Euclidean angle $$\cos \phi(\mathbf a, \mathbf b)$$ between two geometric objects '''a''' and '''b''' can be measured by the homogeneous [[magnitude]] given by :$$\cos \phi(\mathbf a, \mathbf b) = \left\Vert \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606}\right\Vert_\unicode["segoe ui symbol"]{x25CF} + \left\Vert\mathbf a \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf b \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$. In the case that the grades of $$\mathbf a$$ and $$\mathbf b$$ are equal, a signed angle can be obtained by using the formula :$$\cos \phi(\mathbf a, \mathbf b) = \mathbf a \vee \mathbf b^\unicode["segoe ui symbol"]{x2606} + \left\Vert\mathbf a \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf b \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$. The following table lists formulas for angles between the main types of geometric objects in the 4D rigid geometric algebra over 3D Euclidean space. These formulas are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed. The [[lines]] and [[planes]] appearing in the distance formulas are defined as follows: :$$\mathbf k = k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} + k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}$$ :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ :$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$ {| class="wikitable" ! Angle Formula !! Illustration |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between planes $$\mathbf g$$ and $$\mathbf h$$. $$\cos \phi(\mathbf g, \mathbf h) = (\mathbf g_{xyz} \cdot \mathbf h_{xyz}) \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf h \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_plane.svg|200px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between plane $$\mathbf g$$ and line $$\boldsymbol l$$. $$\cos \phi(\mathbf g, \boldsymbol l) = \left\Vert \mathbf g_{xyz} \times \boldsymbol l_{\mathbf v}\right\Vert \mathbf 1 + \left\Vert\mathbf g \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\boldsymbol l \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_plane_line.svg|200px]] |- | style="padding: 12px;" | Cosine of angle $$\phi$$ between lines $$\boldsymbol l$$ and line $$\mathbf k$$. $$\cos \phi(\boldsymbol l, \mathbf k) = (\boldsymbol l_{\mathbf v} \cdot \mathbf k_{\mathbf v})\mathbf 1 + \left\Vert\boldsymbol l \right\Vert_\unicode["segoe ui symbol"]{x25CB}\left\Vert\mathbf k \right\Vert_\unicode["segoe ui symbol"]{x25CB}$$ | style="padding: 12px; text-align: center;" | [[Image:angle_line_line.svg|200px]] |} == In the Book == * Euclidean angles are discussed in Section 2.13.3. == See Also == * [[Euclidean distance]] * [[Geometric norm]] * [[Magnitude]] * [[Interior products]] 47fddbea6d3b77eb86e9c1ddfdff13be13278b5e Translation 0 31 408 288 2024-07-14T02:26:20Z Eric Lengyel 1 /* Exponential Form */ wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & \tau_x \\ 0 & 1 & 0 & \tau_y \\ 0 & 0 & 1 & \tau_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Reciprocal translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] beebdf83871998b01092c846fbfa4fab9a7a2684 416 408 2024-08-08T07:11:29Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & \tau_x \\ 0 & 1 & 0 & \tau_y \\ 0 & 0 & 1 & \tau_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Complement translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 09dea65f7faf75f4462b6ed8e57934d29676a541 428 416 2024-10-12T23:27:53Z Eric Lengyel 1 /* Matrix Form */ wikitext text/x-wiki __NOTOC__ A ''translation'' is a proper isometry of Euclidean space. The specific kind of [[motor]] :$$\mathbf T = {\tau_x \mathbf e_{23} + \tau_y \mathbf e_{31} + \tau_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ performs a translation by twice the displacement vector $$\boldsymbol \tau = (\tau_x, \tau_y, \tau_z)$$ when used as an operator in the sandwich antiproduct. This can be interpreted as a rotation about the [[line]] at infinity perpendicular to the direction $$\boldsymbol \tau$$. == Exponential Form == A translation by a distance $$\delta$$ perpendicular to a unitized [[plane]] $$\mathbf g$$ can be expressed as an exponential of the plane's [[attitude]] as :$$\mathbf T = \exp_\unicode{x27C7}\left(\dfrac{\delta}{2} \operatorname{att}(\mathbf g)\right) = \dfrac{\delta}{2} \operatorname{att}(\mathbf g) + {\large\unicode{x1d7d9}}$$ == Matrix Form == When a translation $$\mathbf T$$ is applied to a [[point]], it is equivalent to premultiplying the point by the $$4 \times 4$$ matrix :$$\begin{bmatrix} 1 & 0 & 0 & 2\tau_x \\ 0 & 1 & 0 & 2\tau_y \\ 0 & 0 & 1 & 2\tau_z \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}$$ . == Translation to Origin == A point $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ is translated to the origin by the operator :$$\mathbf T = {-\dfrac{p_{x\vphantom{y}}}{2p_w} \mathbf e_{23} - \dfrac{p_y}{2p_w} \mathbf e_{31} - \dfrac{p_{z\vphantom{y}}}{2p_w} \mathbf e_{12} + \large\unicode{x1d7d9}}$$ . == Calculation == The exact translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = (p_x + 2\tau_xp_w)\mathbf e_1 + (p_y + 2\tau_yp_w)\mathbf e_2 + (p_z + 2\tau_zp_w)\mathbf e_3 + p_w\mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + (l_{mx} + 2\tau_y l_{vz} - 2\tau_z l_{vy})\mathbf e_{23} + (l_{my} + 2\tau_z l_{vx} - 2\tau_x l_{vz})\mathbf e_{31} + (l_{mz} + 2\tau_x l_{vy} - 2\tau_y l_{vx})\mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27C7}} \mathbf g \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{T}}} = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + (g_w - 2\tau_xg_x - 2\tau_yg_y - 2\tau_zg_z) \mathbf e_{321}$$ |} == See Also == * [[Complement translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 32f9a8d567860ab5ef97f1018c1b29ad9424c47c Transformation groups 0 25 409 369 2024-08-08T07:06:28Z Eric Lengyel 1 wikitext text/x-wiki In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, every Euclidean isometry of 3D space can be represented by a [[motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{23} + Q_{my} \mathbf e_{31} + Q_{mz} \mathbf e_{12} + Q_{mw} \mathbf 1$$ or by a [[flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ . Under the [[geometric antiproduct]] $$\unicode{x27C7}$$, arbitrary products of these operators form the Euclidean group $$\mathrm E(3)$$ with $${\large\unicode{x1D7D9}}$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$. Symmetrically, every complement Euclidean isometry of 3D space can be represented by a [[complement motor]] $$\mathbf Q$$ of the form :$$\mathbf Q = Q_{vx} \mathbf e_{23} + Q_{vy} \mathbf e_{31} + Q_{vz} \mathbf e_{12} - Q_{vw} {\large\unicode{x1d7d9}} + Q_{mx} \mathbf e_{41} + Q_{my} \mathbf e_{42} + Q_{mz} \mathbf e_{43} - Q_{mw} \mathbf 1$$ or by a [[complement flector]] $$\mathbf F$$ of the form :$$\mathbf F = F_{px} \mathbf e_{423} + F_{py} \mathbf e_{431} + F_{pz} \mathbf e_{412} + F_{pw} \mathbf e_{321} - F_{gx} \mathbf e_1 - F_{gy} \mathbf e_2 - F_{gz} \mathbf e_3 - F_{gw} \mathbf e_4$$ . Under the [[geometric product]] $$\unicode{x27D1}$$, arbitrary products of these operators form the complement Euclidean group $$\overline{\mathrm E}(3)$$ with $$\mathbf 1$$ as the identity, and they covariantly transform any object $$\mathbf x$$ in the algebra through the sandwich products $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ and $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde F}$$. The [[geometric product]] corresponds to transform composition in the group $$\overline{\mathrm E}(3)$$, and the [[geometric antiproduct]] corresponds to transform composition in the group $$\mathrm E(3)$$. [[Reflections]] across planes are represented by [[antivectors]] (having [[antigrade]] one), and they meet at lower-dimensional invariants under the geometric antiproduct. Symmetrically, [[complement reflections]] across points are represented by [[vectors]] (having [[grade]] one), and they join at higher-dimensional invariants under the geometric product. A sandwich product $$\mathbf Q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde Q}$$ transforms the space of $$\mathbf x$$ with an element of $$\overline{\mathrm E}(3)$$, and it transforms the antispace of $$\mathbf x$$ with the complementary element of $$\mathrm E(3)$$. Symmetrically, a sandwich product $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$ transforms the space of $$\mathbf x$$ with an element of $$\mathrm E(3)$$, and it transforms the antispace of $$\mathbf x$$ with the complementary element of $$\overline{\mathrm E}(3)$$. The groups $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ are isomorphic, and they each contain the orthogonal group $$\mathrm O(n)$$ as a common subgroup. The [[complement]] operation provides a two-way mapping between transforms associated with members of $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$. The groups $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ have a number of subgroups, and the hierarchical relationships among them are shown in the figure below. In particular, the Euclidean group $$\mathrm E(n)$$ contains the special Euclidean subgroup $$\mathrm{SE}(n)$$ consisting of all combinations of ordinary [[rotations]] and [[translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even antigrade. Correspondingly, the complement Euclidean group $$\overline{\mathrm E}(n)$$ contains the complement special Euclidean subgroup $$\mathrm S\overline{\mathrm E}(n)$$ consisting of all combinations of [[complement rotations]] and [[complement translations]], which are covered by the elements of $$\mathcal G_{n,0,1}$$ having even grade. The subgroups $$\mathrm{SE}(n)$$ and $$\mathrm S\overline{\mathrm E}(n)$$ further contain translation subgroups $$\mathrm T(n)$$ and $$\overline{\mathrm T}(n)$$, respectively. [[Image:Groups.svg|800px]] Transforms about invariants containing the origin are the same in both $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$, and they constitute the common subgroup $$\mathrm O(n)$$. Every member of $$\mathrm O(n)$$ has a representation that transforms elements with the geometric product and a complementary representation that transforms elements with the geometric antiproduct. For example, conventional [[quaternions]] $$\mathbf q$$ have two representations, one that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde q}$$ and another that transforms any object $$\mathbf x$$ through the sandwich product $$\mathbf x' = \mathbf q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{q}}}$$. In terms of matrix multiplication, a general element of the group $$\mathrm E(n)$$ transforms a point by multiplying on the left by an $$(n + 1) \times (n + 1)$$ matrix of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \boldsymbol \tau_{n \times 1} \\ \mathbf 0_{1 \times n} & 1 \end{bmatrix}$$ , where the $$n \times n$$ submatrix $$\mathbf M$$ is orthogonal. A general element of the corresponding group $$\overline{\mathrm E}(n)$$ transforms points with matrices of the form :$$\begin{bmatrix} \mathbf M_{n \times n} & \mathbf 0_{n \times 1} \\ \boldsymbol \tau_{1 \times n} & 1 \end{bmatrix}$$ . In the special subgroups $$\mathrm{SE}(n)$$ and $$\mathrm S\overline{\mathrm E}(n)$$, the submatrix $$\mathbf M$$ has a determinant of +1. In the translation subgroups $$\mathrm T(n)$$ and $$\overline{\mathrm T}(n)$$, $$\mathbf M$$ is the identity matrix. Finally, when $$\boldsymbol \tau = \mathbf 0$$, the two matrices above have the same form and belong to $$\mathrm O(n)$$. The isomorphic mapping between $$\mathrm E(n)$$ and $$\overline{\mathrm E}(n)$$ is given by the inverse transpose operation on the matrix representatives. That is, if $$\mathbf M$$ is an $$(n + 1) \times (n + 1)$$ matrix representing an element of $$\mathrm E(n)$$, then the corresponding element of $$\overline{\mathrm E}(n)$$ is given by $$(\mathbf M^{-1})^{\text T}$$. Of course, this operation is an involution, and the mapping works both ways. == In the Book == * Transformation groups are discussed in Section 3.9.2. == See Also == * [[Motor]] * [[Flector]] 2797cf78de2e2b81e642504107f4b9ec8f002c82 Complement rotation 0 37 410 190 2024-08-08T07:07:14Z Eric Lengyel 1 Eric Lengyel moved page [[Reciprocal rotation]] to [[Complement rotation]] without leaving a redirect wikitext text/x-wiki A ''reciprocal rotation'' is a proper isometry of reciprocal Euclidean space. For a [[bulk normalized]] [[line]] $$\boldsymbol l$$, the specific kind of [[reciprocal motor]] :$$\mathbf R = \boldsymbol l\sin\phi + \mathbf 1\cos\phi$$ , performs a reciprocal rotation of an object $$\mathbf x$$ by twice the angle $$\phi$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27D1}} \mathbf x \mathbin{\unicode{x27D1}} \mathbf{\tilde R}$$. The line $$\boldsymbol l$$ and its bulk [[complement]] $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ are invariant under this operation. The line $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ passes through the origin and runs perpendicular to the line's moment bivector. Under a reciprocal rotation, a point $$\mathbf p$$ follows an orbit of constant eccentricity as the angle $$\phi$$ ranges from 0 to $$\pi$$. The line $$\boldsymbol l$$ is the directrix for the orbit, and the intersection of $$\underline{\boldsymbol l_\smash{\unicode{x25CF}}}$$ with the plane $$\boldsymbol l \wedge \mathbf p$$ is the focus. The eccentricity is given by the distance from $$\mathbf p$$ to the focus divided by the distance from $$\mathbf p$$ to the directrix. == Example == The left image below shows the flow field in the ''x''-''y'' plane for the rotation $$\mathbf R = (\mathbf e_{43} - \frac{1}{2} \mathbf e_{31})\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$. The axis of rotation runs along the ''z'' direction through the yellow point. The right image shows the flow field in the ''x''-''y'' plane for the reciprocal rotation $$\mathbf R = (\frac{1}{2} \mathbf e_{42} - \mathbf e_{12})\sin\phi + \mathbf 1\cos\phi$$. Points follow orbits of constant eccentricity with respect to a focus at the origin and a directrix given by the yellow line. [[Image:Rotation.svg|480px]] [[Image:DualRotation.svg|480px]] == Calculation == The exact reciprocal rotation calculations for points, lines, and planes transformed by the operator $$\mathbf R = R_{vx}\mathbf e_{41} + R_{vy}\mathbf e_{42} + R_{vz}\mathbf e_{43} + R_{mx}\mathbf e_{23} + R_{my}\mathbf e_{31} + R_{mz}\mathbf e_{12} + R_{mw}\mathbf 1$$ are shown in the following table. Here, it is assumed that $$\mathbf R$$ is [[bulk normalized]] so that $$R_{mx}^2 + R_{my}^2 + R_{mz}^2 + R_{mw}^2 = 1$$ and that $$\mathbf R$$ properly satisfies the [[geometric property]] so that $$R_{vx}R_{mx} + R_{vy}R_{my} + R_{vz}R_{mz} = 0$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)p_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})p_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})p_z\right]\mathbf e_1 \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)p_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})p_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})p_x\right]\mathbf e_2 \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)p_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})p_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})p_y\right]\mathbf e_3 \\ +\, &\left[2(R_{my}R_{vz} - R_{mz}R_{vy} + R_{mw}R_{vx})p_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} + R_{mw}R_{vy})p_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} + R_{mw}R_{vz})p_z + p_w\right]\mathbf e_4\end{split}$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[-4(R_{my}R_{vy} + R_{mz}R_{vz})l_{mx} + 2(R_{my}R_{vx} + R_{mx}R_{vy} + R_{mw}R_{vz})l_{my} + 2(R_{mz}R_{vx} + R_{mx}R_{vz} - R_{mw}R_{vy})l_{mz} + (1 - 2R_{my}^2 - 2R_{mz}^2)l_{vx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{vy} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{vz}\right]\mathbf e_{41} \\ +\, &\left[-4(R_{mz}R_{vz} + R_{mx}R_{vx})l_{my} + 2(R_{mz}R_{vy} + R_{my}R_{vz} + R_{mw}R_{vx})l_{mz} + 2(R_{mx}R_{vy} + R_{my}R_{vx} - R_{mw}R_{vz})l_{mx} + (1 - 2R_{mz}^2 - 2R_{mx}^2)l_{vy} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{vz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{vx}\right]\mathbf e_{42} \\ +\, &\left[-4(R_{mx}R_{vx} + R_{my}R_{vy})l_{mz} + 2(R_{mx}R_{vz} + R_{mz}R_{vx} + R_{mw}R_{vy})l_{mx} + 2(R_{my}R_{vz} + R_{mz}R_{vy} - R_{mw}R_{vx})l_{my} + (1 - 2R_{mx}^2 - 2R_{my}^2)l_{vz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{vx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{vy}\right]\mathbf e_{43} \\ +\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)l_{mx} + 2(R_{mx}R_{my} + R_{mz}R_{mw})l_{my} + 2(R_{mz}R_{mx} - R_{my}R_{mw})l_{mz}\right]\mathbf e_{23} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)l_{my} + 2(R_{my}R_{mz} + R_{mx}R_{mw})l_{mz} + 2(R_{mx}R_{my} - R_{mz}R_{mw})l_{mx}\right]\mathbf e_{31} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)l_{mz} + 2(R_{mz}R_{mx} + R_{my}R_{mw})l_{mx} + 2(R_{my}R_{mz} - R_{mx}R_{mw})l_{my}\right]\mathbf e_{12}\end{split}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\begin{split}\mathbf R \mathbin{\unicode{x27D1}} \mathbf g \mathbin{\unicode{x27D1}} \mathbf{\tilde R} =\, &\left[(1 - 2R_{my}^2 - 2R_{mz}^2)g_x + 2(R_{mx}R_{my} + R_{mz}R_{mw})g_y + 2(R_{mz}R_{mx} - R_{my}R_{mw})g_z + 2(R_{my}R_{vz} - R_{mz}R_{vy} - R_{mw}R_{vx})g_w\right]\mathbf e_{423} \\ +\, &\left[(1 - 2R_{mz}^2 - 2R_{mx}^2)g_y + 2(R_{my}R_{mz} + R_{mx}R_{mw})g_z + 2(R_{mx}R_{my} - R_{mz}R_{mw})g_x + 2(R_{mz}R_{vx} - R_{mx}R_{vz} - R_{mw}R_{vy})g_w\right]\mathbf e_{431} \\ +\, &\left[(1 - 2R_{mx}^2 - 2R_{my}^2)g_z + 2(R_{mz}R_{mx} + R_{my}R_{mw})g_x + 2(R_{my}R_{mz} - R_{mx}R_{mw})g_y + 2(R_{mx}R_{vy} - R_{my}R_{vx} - R_{mw}R_{vz})g_w\right]\mathbf e_{412} \\ +\, &g_w\mathbf e_{321}\end{split}$$ |} == See Also == * [[Rotation]] * [[Reciprocal translation]] * [[Reciprocal reflection]] 6f7d97f24a97dae954cd95a852435cfd2caa22bc Complement rotations 0 144 411 189 2024-08-08T07:10:07Z Eric Lengyel 1 Changed redirect target from [[Reciprocal rotation]] to [[Complement rotation]] wikitext text/x-wiki #REDIRECT [[Complement rotation]] a9110c07aee1527b7a2fb092832b6d572d4a108c 412 411 2024-08-08T07:10:18Z Eric Lengyel 1 Eric Lengyel moved page [[Reciprocal rotations]] to [[Complement rotations]] without leaving a redirect wikitext text/x-wiki #REDIRECT [[Complement rotation]] a9110c07aee1527b7a2fb092832b6d572d4a108c Complement translation 0 34 413 300 2024-08-08T07:10:32Z Eric Lengyel 1 Eric Lengyel moved page [[Reciprocal translation]] to [[Complement translation]] without leaving a redirect wikitext text/x-wiki __NOTOC__ A ''reciprocal translation'' is a proper isometry of reciprocal Euclidean space. The specific kind of [[reciprocal motor]] :$$\mathbf T = t_x \mathbf e_{41} + t_y \mathbf e_{42} + t_z \mathbf e_{43} + \mathbf 1$$ performs a perspective projection in the direction of $$\mathbf t = (t_x, t_y, t_z)$$ with the focal length given by :$$g = \dfrac{1}{2\Vert \mathbf t \Vert}$$ . == Example == The left image below shows the flow field in the ''x''-''z'' plane for the translation $$\mathbf T = -\frac{1}{2} \mathbf e_{12} + {\large\unicode{x1d7d9}}$$. The right image shows the flow field in the ''x''-''z'' plane for the reciprocal translation $$\mathbf T = \frac{1}{2} \mathbf e_{43} + \mathbf 1$$. The yellow line is fixed as a whole, but points on it move to other locations on the line. All points with $$z = 0$$, represented by the blue plane, are fixed. The white plane at $$z = -1$$ represents the division between regions where the signs of projected $$z$$ coordinates are positive and negative. [[Image:Translation.svg|480px]] [[Image:DualTranslation.svg|480px]] == Calculation == The exact reciprocal translation calculations for points, lines, and planes are shown in the following table. {| class="wikitable" ! Type || Reciprocal Translation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf p \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + (2t_xp_x + 2t_yp_y + 2t_zp_z + p_w) \mathbf e_4$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf L \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (v_x - 2t_ym_z + 2t_zm_y)\mathbf e_{41} + (v_y - 2t_zm_x + 2t_xm_z)\mathbf e_{42} + (v_z - 2t_xm_y - 2t_ym_x)\mathbf e_{43} + m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf T \mathbin{\unicode{x27D1}} \mathbf f \mathbin{\unicode{x27D1}} \mathbf{\tilde T} = (f_x - 2t_xf_w) \mathbf e_{234} + (f_y - 2t_yf_w) \mathbf e_{314} + (f_z - 2t_zf_w) \mathbf e_{124} + f_w \mathbf e_{321}$$ |} == Reciprocal Translation to Horizon == A plane $$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ is reciprocal translated to the horizon by the operator :$$\mathbf T = \dfrac{f_{x\vphantom{y}}}{2f_w} \mathbf e_{41} + \dfrac{f_y}{2f_w} \mathbf e_{42} + \dfrac{f_{z\vphantom{y}}}{2f_w} \mathbf e_{43} + \mathbf 1$$ . == See Also == * [[Translation]] * [[Reciprocal rotation]] * [[Reciprocal reflection]] 84acb84893568b0e2552daae39f7b6271c18ff73 Complement translations 0 143 414 188 2024-08-08T07:10:46Z Eric Lengyel 1 Changed redirect target from [[Reciprocal translation]] to [[Complement translation]] wikitext text/x-wiki #REDIRECT [[Complement translation]] 59f4a406fb929e752d3fc9912c682b6226855811 415 414 2024-08-08T07:11:04Z Eric Lengyel 1 Eric Lengyel moved page [[Reciprocal translations]] to [[Complement translations]] without leaving a redirect wikitext text/x-wiki #REDIRECT [[Complement translation]] 59f4a406fb929e752d3fc9912c682b6226855811 Rotation 0 30 417 313 2024-08-08T07:11:37Z Eric Lengyel 1 /* See Also */ wikitext text/x-wiki A ''rotation'' is a proper isometry of Euclidean space. For a [[Unitization | unitized]] [[line]] $$\boldsymbol l$$, the specific kind of [[motor]] :$$\mathbf R = \boldsymbol l\sin\phi + {\large\unicode{x1d7d9}}\cos\phi$$ , performs a rotation by twice the angle $$\phi$$ about the line $$\boldsymbol l$$ with the sandwich product $$\mathbf R \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$. The operator $$\mathbf R$$ differs from a general [[motor]] only in that it is always the case that $$R_{mw} = 0$$. The line $$\boldsymbol l$$ and its [[weight dual]] $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ are invariant under this operation. The line $$\boldsymbol l^\unicode["segoe ui symbol"]{x2606}$$ lies in the [[horizon]] in directions perpendicular to the direction of $$\boldsymbol l$$. == Calculation == The exact rotation calculations for points, lines, and planes are shown in the following table, where $$\mathbf v = (R_{vx}, R_{vy}, R_{vz})$$ and $$\mathbf m = (R_{mx}, R_{my}, R_{mz})$$. {| class="wikitable" ! Type || Transformation |- | style="padding: 12px;" | [[Point]] $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf p_{xyz} + p_w\mathbf m$$ $$\mathbf p'_{xyz} = \mathbf p_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$p'_w = p_w$$ |- | style="padding: 12px;" | [[Line]] $$\begin{split}\boldsymbol l =\, &l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} \\ +\, &l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}\end{split}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \boldsymbol l_{\mathbf v}$$ $$\mathbf b = \mathbf v \times \boldsymbol l_{\mathbf m}$$ $$\mathbf c = \mathbf m \times \boldsymbol l_{\mathbf v}$$ $$\boldsymbol l'_{\mathbf v} = \boldsymbol l_{\mathbf v} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$\boldsymbol l'_{\mathbf m} = \boldsymbol l_{\mathbf m} + 2(R_{vw}(\mathbf b + \mathbf c) + \mathbf v \times (\mathbf b + \mathbf c) + \mathbf m \times \mathbf a)$$ |- | style="padding: 12px;" | [[Plane]] $$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ | style="padding: 12px;" | $$\mathbf a = \mathbf v \times \mathbf g_{xyz}$$ $$\mathbf g'_{xyz} = \mathbf g_{xyz} + 2(R_{vw}\mathbf a + \mathbf v \times \mathbf a)$$ $$g'_w = g_w + 2[(\mathbf m \times \mathbf g_{xyz}) \cdot \mathbf v - R_{vw}(\mathbf m \cdot \mathbf g_{xyz})]$$ |} == See Also == * [[Complement rotation]] * [[Translation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] a120facb8497957cd80923af1e8c64532070f26c Main Page 0 1 418 377 2024-08-10T03:02:21Z Eric Lengyel 1 /* Pages */ wikitext text/x-wiki __NOTOC__ == Rigid Geometric Algebra == This wiki is a repository of information about Rigid Geometric Algebra (RGA), and specifically the four-dimensional Clifford algebra $$\mathcal G_{3,0,1}$$. This wiki is associated with the following websites: * [http://projectivegeometricalgebra.org Projective Geometric Algebra overview site] * [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra companion site] Rigid geometric algebra is a mathematical model that naturally incorporates representations for Euclidean [[points]], [[lines]], and [[planes]] in 3D space as well as operations for performing [[rotations]], [[reflections]], and [[translations]] in a single algebraic structure. It completely subsumes conventional models that include homogeneous coordinates, Plücker coordinates, [[quaternions]], and screw theory (which makes use of dual quaternions). This makes rigid geometric algebra a natural fit for areas of computer science that routinely use these mathematical concepts, especially computer graphics and robotics. [http://conformalgeometricalgebra.org/wiki/index.php?title=Main_Page Conformal Geometric Algebra] (CGA) is a larger algebra that contains the complete RGA and also includes round objects like circles and spheres. Rigid geometric algebra is an area of active research, and new information is frequently being added to this wiki. '''If you are experiencing problems with the LaTeX on this site, please clear the cookies for rigidgeometricalgebra.org and reload.''' == Introduction == [[Image:basis.svg|thumb|right|400px|'''Table 1.''' The 16 basis elements of the 4D rigid geometric algebra.]] In the four-dimensional rigid geometric algebra, there are 16 graded basis elements. These are listed in Table 1. There is a single ''[[scalar]]'' basis element that we denote by $$\mathbf 1$$, in bold, and its multiples correspond to the real numbers, which are values that have no dimensions. There are four ''[[vector]]'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, $$\mathbf e_3$$, and $$\mathbf e_4$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z, v_w)$$ has the form :$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3 + v_w \mathbf e_4$$ . There are six ''[[bivector]]'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, $$\mathbf e_{12}$$, $$\mathbf e_{41}$$, $$\mathbf e_{42}$$, and $$\mathbf e_{43}$$ having two-dimensional extents. These correspond to all possible [[wedge products]] between pairs of vector basis elements up to order. We use the multiple subscript notation $$\mathbf e_{ij}$$ as shorthand for the wedge product $$\mathbf e_i \wedge \mathbf e_j$$. Numerical subscripts for the bivector basis elements are always written in the order shown in Table 1, and the bivectors are negated when basis vectors are multiplied in the opposite order. For example, $$\mathbf e_3 \wedge \mathbf e_2 = -\mathbf e_{23}$$. There are four ''[[trivector]]'' basis elements named $$\mathbf e_{423}$$, $$\mathbf e_{431}$$, $$\mathbf e_{412}$$, and $$\mathbf e_{321}$$ having three-dimensional extents. These correspond to all possible wedge products of three different vector basis elements. Again, numerical subscripts will always be written exactly as shown in the table, and negation will be applied for any odd permutation of the multiplication order. Finally, there is a single ''quadrivector'' basis element $$\mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ having four-dimensional extents. Because the quadrivector element has only one component, it is often called the ''pseudoscalar'', and it is often denoted by $$\mathbf I_4$$. The subscript 4 corresponds to the number of dimensions, and it is usually dropped when the dimensionality is clear from the context. Because the quadrivector contains all four dimensions, it is also called the ''volume element'' of the algebra, and this is often denoted by $$\mathbf E_4$$. We use the notation :$${\large\unicode{x1D7D9}} = \mathbf e_1 \wedge \mathbf e_2 \wedge \mathbf e_3 \wedge \mathbf e_4$$ , with a blackboard bold $${\large\unicode{x1D7D9}}$$, to emphasize that the volume element is in symmetric opposition to the scalar basis element $$\mathbf 1$$ and is equally functional within the algebra. We refer to multiples of the basis element $${\large\unicode{x1D7D9}}$$ as ''[[antiscalars]]''. Scalars and antiscalars are two sides of the same coin, and neither has a place of greater importance. We eschew the term pseudoscalar due to its portrayal of the element $${\large\unicode{x1D7D9}}$$ as different from and perhaps somewhat less significant than the element $$\mathbf 1$$. It is not. As shown in the rightmost column in the table, each of the basis elements can be identified by which specific multiplicative combination of the four available dimensions it represents. This is essentially a four-bit code in which black bars correspond to the dimensions that are present or ''full'', and white bars correspond to the dimensions that are absent or ''empty''. The ''[[grade]]'' of a basis element $$\mathbf u$$, denoted by $$\operatorname{gr}(\mathbf u)$$, is the number of black bars it has, which is the same as the number of vector basis elements in its factorization. For a thorough understanding of the algebraic structure, it is critically important to recognize that there is a fundamental symmetry at work. We have assigned a dimensionality to each basis element according to the number of full dimensions it has, but it is equally valid to assign a dimensionality according to the number of empty dimensions each one has. Vectors, bivectors, and trivectors have dimensions one, two, and three when we count the black bars. However, from the opposite perspective, vectors, bivectors, and trivectors have dimensions three, two, and one when we count the white bars. Both of these interpretations are simultaneously correct, and together they establish the concept of ''[[duality]]''. [[Duality]] is always present, and it pervades geometric algebra. It can be found not only in the elements of the algebra but in the operations that act on those elements. In addition to the grade, we can assign an ''[[antigrade]]'' to each basis element $$\mathbf u$$. Denoted by $$\operatorname{ag}(\mathbf u)$$, the antigrade of $$\mathbf u$$ is the number of vector basis elements missing from its factorization, which is the number of white bars in the table. Of course, it is always the case that :$$\operatorname{gr}(\mathbf u) + \operatorname{ag}(\mathbf u) = n$$ , where $$n$$ is the total number of dimensions in the algebra. Whenever we can make a statement about how an operation relates to the grade of its inputs and outputs, we can make the same statement about how the dual operation relates to the antigrade of its inputs and outputs. In an $$n$$-dimensional algebra, the elements with grade $$n - 1$$ are called ''[[antivectors]]''. Antivectors have the same number of components as vectors, and the two can be regarded as the dimensional inverses of each other. Vectors have grade one because they have one full dimension, and antivectors have antigrade one because they have one empty dimension. == Pages == === The five main types of rigid geometric objects === * [[Point]] * [[Line]] * [[Plane]] * [[Motor]] * [[Flector]] === Various properties and unary operations === * [[Grade and antigrade]] * [[Complements]] * [[Metrics]] * [[Bulk and weight]] * [[Duals]] * [[Reverses]] * [[Attitude]] * [[Geometric norm]] * [[Geometric constraint]] * [[Unitization]] * [[Duality]] === Products and other binary operations === * [[Exterior products]] * [[Dot products]] * [[Interior products]] * [[Geometric products]] * [[Join and meet]] * [[Projections]] * [[Euclidean distance]] * [[Euclidean angle]] === Isometries of 3D space === * [[Transformation groups]] * [[Translation]] * [[Rotation]] * [[Reflection]] * [[Inversion]] * [[Transflection]] 4af5e4a672ae1dd2284c1b1465b4d70f2be5bb0f Space-Antispace Transform Correspondence in Projective Geometric Algebra 0 180 419 2024-08-11T02:37:18Z Eric Lengyel 1 Created page with "This content has been moved to the following location. [https://terathon.com/blog/space-antispace-pga.html https://terathon.com/blog/space-antispace-pga.html]" wikitext text/x-wiki This content has been moved to the following location. [https://terathon.com/blog/space-antispace-pga.html https://terathon.com/blog/space-antispace-pga.html] 358e4d5fcd5ca7f58d49ebdff89b501e24a7d7d9 Symmetries in Projective Geometric Algebra 0 181 420 2024-08-11T02:37:59Z Eric Lengyel 1 Created page with "This content has been moved to the following location: [https://terathon.com/blog/symmetries-pga.html https://terathon.com/blog/symmetries-pga.html]" wikitext text/x-wiki This content has been moved to the following location: [https://terathon.com/blog/symmetries-pga.html https://terathon.com/blog/symmetries-pga.html] 2f5f34afa0dc027bece5534f8b0e7b83ef014c7c Projective Geometric Algebra Done Right 0 182 421 2024-08-11T02:39:10Z Eric Lengyel 1 Created page with "This content has been moved to the following location: [https://terathon.com/blog/pga-done-right.html https://terathon.com/blog/pga-done-right.html]" wikitext text/x-wiki This content has been moved to the following location: [https://terathon.com/blog/pga-done-right.html https://terathon.com/blog/pga-done-right.html] f3efb7718681926dfeb36483ce672f8e2f7203bc Complements 0 41 425 355 2024-08-25T06:30:10Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] === Explicit Formula === Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as :$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \cdots \mathbf e_{a_k}$$ , where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by :$$\overline{\mathbf u} = \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-1}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ , where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as :$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$ == In the Book == * Complements are introduced in Section 2.2. == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] e639997b044b8d318a9b249b5d5b83d9badbd400 426 425 2024-08-25T06:33:10Z Eric Lengyel 1 /* Explicit Formula */ wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] === Explicit Formula === Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as :$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \cdots \mathbf e_{a_k}$$ , where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by :$$\overline{\mathbf u} = \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-k}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ , where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as :$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$ == In the Book == * Complements are introduced in Section 2.2. == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] 8488ca8190e54331e9083ab5bea43e9c4ac3faf1 427 426 2024-08-25T06:42:06Z Eric Lengyel 1 wikitext text/x-wiki ''Complements'' are unary operations in geometric algebra that perform a specific type of dualization. Every basis element $$\mathbf u$$ has a ''right complement'', which we denote by $$\overline{\mathbf u}$$, that satisfies the equation :$$\mathbf u \wedge \overline{\mathbf u} = {\large\unicode{x1D7D9}}$$ . There is also a ''left complement'', which we denote by $$\underline{\mathbf u}$$, that satisfies the equation :$$\underline{\mathbf u} \wedge \mathbf u = {\large\unicode{x1D7D9}}$$ . Complements exchange full and empty dimensions, and the left and right complements can differ only by sign according to the relationship :$$\underline{\mathbf u} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\overline{\mathbf u}$$ . This shows that the left and right complements of an element $$\mathbf u$$ are always the same if either its [[grade]] $$\operatorname{gr}(\mathbf u)$$ or its [[antigrade]] $$\operatorname{ag}(\mathbf u)$$ is even. If the number of dimensions is odd, then it is always true that one of these is even, so left and right complements are the same for all elements in an odd-dimensional algebra. As shown in the table below, applying the right or left complement twice can negate the operand in even numbers of dimensions. However, the right and left complements are inverse operations, so we always have $$\overline{\underline{\mathbf u}} = \mathbf u$$. Taking the right or left complement twice causes the sign to change according to the formula :$$\underline{\underline{\mathbf u}} = \overline{\overline{\mathbf u}} = (-1)^{\operatorname{gr}(\mathbf u)\operatorname{ag}(\mathbf u)}\,\mathbf u$$ . The right and left complements under the [[wedge product]] are also the right and left complements under the [[antiwedge product]], so we can write :$$\mathbf u \vee \overline{\mathbf u} = \mathbf 1$$ :$$\underline{\mathbf u} \vee\mathbf u = \mathbf 1$$ . To extend the complements to all elements of an algebra, we simply require that they are linear operations. For any basis elements $$\mathbf x$$ and $$\mathbf y$$, and for any scalars $$a$$ and $$b$$, we must have, for the right complement, :$$\overline{(a\mathbf x + b\mathbf y)} = a\overline{\mathbf x} + b\overline{\mathbf y}$$ , and similarly for the left complement. The following table lists the left and right complements for all of the basis elements in the 4D geometric algebra $$\mathcal G_{3,0,1}$$. [[Image:Complements.svg|720px]] === Explicit Formula === In an $$n$$-dimensional algebra, suppose the volume element is given by :$${\large\unicode{x1D7D9}} = m (\mathbf e_1 \wedge \mathbf e_2 \wedge \cdots \wedge \mathbf e_n)$$ , where $$m = \pm 1$$. Let $$\mathbf u$$ be a basis element with grade $$k$$. Then $$\mathbf u$$ can be expressed as :$$\mathbf u = \mathbf e_{a_1} \wedge \mathbf e_{a_2} \wedge \cdots \wedge \mathbf e_{a_k}$$ , where each $$a_i$$ is a unique index satisfying $$1 \le a_i \le n$$. The right complement of $$\mathbf u$$ is given by :$$\overline{\mathbf u} = m \operatorname{sgn}(a_1, a_2, \dots, a_k) \left(\prod_{i=1}^k (-1)^{a_i-k}\right) \left(\bigwedge_{j=1}^n \varphi(j)\right)$$ , where $$\operatorname{sgn}$$ is the signature of the permutation $$(a_1, a_2, \dots, a_k)$$, and $$\varphi(j)$$ is defined as :$$\varphi(j) = \begin{cases}\mathbf e_j, & \text{if } j \notin \{a_1, a_2, \dots, a_k\}; \\ \mathbf 1, & \text{otherwise.}\end{cases}$$ == In the Book == * Complements are introduced in Section 2.2. == See Also == * [[Duals]] * [[Grade and antigrade]] * [[Bulk and weight]] * [[Reverses]] * [[Duality]] d56b31e4d6c073e053ab0e2a7fdcb95c77872c57 Line 0 7 429 365 2024-12-22T00:49:31Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ [[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form :$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$ . The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation :$$l_{vx} l_{mx} + l_{vy} l_{my} + l_{vz} l_{mz} = 0$$ , which means that, when regarded as vectors, the direction and moment of a line are perpendicular. The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction. When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself. <br clear="right" /> == Lines at Infinity == [[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]] If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]]. When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$. <br clear="right" /> == Skew Lines == [[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]] Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line :$$\mathbf i = [\boldsymbol l, \mathbf k]^{\Large\unicode{x27C7}}_- = (l_{vy} k_{vz} - l_{vz} k_{vy})\mathbf e_{41} + (l_{vz} k_{vx} - l_{vx} k_{vz})\mathbf e_{42} + (l_{vx} k_{vy} - l_{vy} k_{vx})\mathbf e_{43} + (l_{vy} k_{mz} - l_{vz} k_{my} + l_{my} k_{vz} - l_{mz} k_{vy})\mathbf e_{23} + (l_{vz} k_{mx} - l_{vx} k_{mz} + l_{mz} k_{vx} - l_{mx} k_{vz})\mathbf e_{31} + (l_{vx} k_{my} - l_{vy} k_{mx} + l_{mx} k_{vy} - l_{my} k_{vx})\mathbf e_{12}$$ and then orthogonalizing its direction and moment to obtain :$$\mathbf j = i_{vx} \mathbf e_{41} + i_{vy} \mathbf e_{42} + i_{vz} \mathbf e_{43} + (i_{mx} - s i_{vx})\mathbf e_{23} + (i_{my} - s i_{vy})\mathbf e_{31} + (i_{mz} - s i_{vz})\mathbf e_{12}$$ , where :$$s = \dfrac{i_{vx}i_{mx} + i_{vy}i_{my} + i_{vz}i_{mz}}{i_{vx}^2 + i_{vy}^2 + i_{vz}^2}$$ . If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$. The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function. <br clear="right" /> == In the Book == * Homogeneous lines are discussed in Section 2.4.2. == See Also == * [[Point]] * [[Plane]] f32b62f3555d966804b0fdd333431ae9c3df8060 Point 0 81 430 364 2024-12-22T00:49:46Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ [[Image:point.svg|400px|thumb|right|'''Figure 1.''' A point is the intersection of a 4D vector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ . All points possess the [[geometric constraint]]. The [[bulk]] of a point is given by its $$x$$, $$y$$, and $$z$$ coordinates, and the [[weight]] of a point is given by its $$w$$ coordinate. A point is [[unitized]] when $$p_w^2 = 1$$. When used as an operator in a sandwich with the [[geometric antiproduct]], a point is a specific kind of [[flector]] that performs an [[inversion]] through itself. A [[translation]] operator $$\mathbf T$$ that moves a point $$\mathbf p$$ to the origin is given by :$$\mathbf T = \underline{\mathbf p} \vee \mathbf e_{321} + 2\mathbf p \wedge \mathbf e_{321} = -p_{x\vphantom{y}} \mathbf e_{23} - p_y \mathbf e_{31} - p_{z\vphantom{y}} \mathbf e_{12} + 2p_w {\large\unicode{x1D7D9}}$$ . == Points at Infinity == If the weight of a point is zero (i.e., its $$w$$ coordinate is zero), then the point is contained in the horizon infinitely far away in the direction $$(x, y, z)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]]. <br clear="right" /> == In the Book == * Homogeneous points are discussed in Section 2.4.1. == See Also == * [[Line]] * [[Plane]] b04bf677f3b1632acb1a32edcd2bedcf2a02a89c Plane 0 61 431 395 2024-12-22T00:49:53Z Eric Lengyel 1 wikitext text/x-wiki __NOTOC__ [[Image:plane.svg|400px|thumb|right|'''Figure 1.''' A plane is the intersection of a 4D trivector with the 3D subspace where $$w = 1$$.]] In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''plane'' $$\mathbf g$$ is a trivector having the general form :$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$ . All planes possess the [[geometric constraint]]. The [[bulk]] of a plane is given by its $$w$$ coordinate, and the [[weight]] of a plane is given by its $$x$$, $$y$$, and $$z$$ coordinates. A plane is [[unitized]] when $$g_x^2 + g_y^2 + g_z^2 = 1$$. The [[attitude]] of a plane is the bivector $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ corresponding to its normal. When used as an operator in the sandwich with the [[geometric antiproduct]], a plane is a specific kind of [[flector]] that performs a [[reflection]] through itself. A [[complement translation]] operator $$\mathbf T$$ that moves a plane $$\mathbf g$$ to the horizon is given by :$$\mathbf T = \underline{\mathbf g} \wedge \mathbf e_{4} + 2\mathbf g \vee \mathbf e_4 = g_{x\vphantom{y}} \mathbf e_{41} + g_y \mathbf e_{42} + g_{z\vphantom{y}} \mathbf e_{43} + 2g_w$$ . == Plane at Infinity == If the weight of a plane is zero (i.e., its $$x$$, $$y$$, and $$z$$ coordinates are all zero), then the plane lies at infinity in all directions. Such a plane is normalized when $$g_w = \pm 1$$. This is the ''horizon'' of three-dimensional space. <br clear="right" /> == In the Book == * Homogeneous planes are discussed in Section 2.4.3. == See Also == * [[Point]] * [[Line]] 1a6c9e7f7306ed8ce1f00c2831329eb69767e235 Metric 0 183 433 2024-12-22T08:49:54Z Eric Lengyel 1 Redirected page to [[Metrics]] wikitext text/x-wiki #REDIRECT [[Metrics]] fcbe1745c2df4f4d52a418ced4d4c3625afd513f Errata 0 179 434 393 2025-02-12T21:21:24Z Eric Lengyel 1 wikitext text/x-wiki This is the errata page for the ''Projective Geometric Algebra Illuminated''. To find out which printing you have, look on the copyright page. If you believe you have found an error that should be added to this list, please email the author (lengyel@terathon.com). == Fourth Printing and Earlier == * '''Page 12.''' Right before Equation (1.25), the expression for the magnitude of the projection of $$\mathbf u$$ onto the line should be $$|\mathbf u \cdot \mathbf v| / \Vert\mathbf v\Vert$$. == Third Printing and Earlier == * '''Page 70.''' In the line following Equation (2.71), the product of the bulks should use the antiwedge product and appear as $$\mathbf a_\unicode["segoe ui symbol"]{x25CF} \vee \mathbf b_\unicode["segoe ui symbol"]{x25CF}$$. == Second Printing and Earlier == * '''Page 248.''' In Equation (5.27), the operator $$\mathbf D$$ should be dualized as $$\mathbf D^\unicode["segoe ui symbol"]{x2605}$$. It should also be dualized in the first factor of the sandwich product in the sentence that follows this equation. == First Printing == * '''Page 84.''' In Table 2.16, both bulk duals of $$\mathbf e_4$$ should be 0. The table should look like the one on the wiki page for [[duals]]. * '''Page 156.''' The number of multiply-adds required for transforming a line with a motor did not include the work needed to calculate $$\mathbf a$$, $$\mathbf b$$, and $$\mathbf c$$. Each cross product adds 6 multiply-adds, so the correct total for transforming a line is 54. * '''Page 156.''' Similarly, the number of multiply-adds required for transforming a plane with a motor did not include the work needed to calculate $$\mathbf a$$. The correct total for transforming a plane is 35. 9370b3c34cf1560d2db93809867779ea3b61dccf